0

我正在创建一个网站,用户可以在其中创建特定场地的娱乐节目。我需要检查用户输入的开始时间和结束时间是否有任何节目固定在该特定场地上。

我在名为 'endtime' 的数据库中有 2 个列名,starttime其中包含yyyy-mm-dd hh:mm:ss. 我想我需要将存储在数据库中两个字段中的值转换为时间戳。但是如何编写查询。

例如:

SELECT *
FROM table_name
WHERE
  timestamp(starttime)>='user entered value'
  AND timestamp(endtime)<='user entered value '

这个查询可能吗?

4

2 回答 2

1

如果“用户输入的值”是 unix 时间戳,您可以使用UNIX_TIMESTAMP (field) 函数将该字段转换为时间戳。如果不是,您必须先使用strtotime或类似函数将其转换为时间戳。或者您可以采用另一种方式,通过使用STR_TO_DATE (date, format) MySQL 函数将字符串转换为日期时间,在查询中使用日期时间值。

例如,如果用户以YYYY-mm-dd hh:mm格式输入日期,请​​使用以下查询:

SELECT * FROM table_name WHERE starttime >= STR_TO_DATE('2012-02-01 12:00', '%Y-%m-%d %H:%i') AND endtime <= STR_TO_DATE('2013-01-01 00 :00', '%Y-%m-%d %H:%i')

我个人喜欢在查询中使用 UNIX 时间戳,但这只是我的怪癖。

于 2013-03-01T13:33:42.043 回答
0

为什么不使用unix时间?它使处理日期变得更加简单。

$current_time=time();

这将创建一个整数。

您的查询:

SELECT * FROM table 
WHERE starttime
BETWEEN starttime AND endtime
于 2013-03-01T13:35:15.053 回答