i有一个包含一个字段" create_at"的表,其数据类型为时间戳。我想将其更改为迄今为止。
我可以查询这张桌子以获取一天的所有一天,以格式DD-mm-yyyy。
注意:我尝试的一种方法是:a)在yyyy-mm-dd与00:00:00的加入b)在yyyy-mm-dd与00:00:00的yyyy-mm-dd加入并使用以下查询获取当天的所有记录:
SELECT *
FROM news
WHERE created>='2016-12-13 00:00:00'AND
created < '2016-12-14 00:00:00'
这是我问题的一个很好的解决方案。解决此问题的任何更好的方法。
您可以使用MySQL cast()
函数。
SELECT
*
FROM news
WHERE CAST(created_at AS DATE) = '2016-12-13'
这将丢弃时间戳的时间组成部分,并仅在日期进行比较。
参考:http://dev.mysql.com/doc/refman/5.7/en/cast-functions.html
如果您不想更改列数据类型,则可以使用此代码
$startDate = strtotime( '2016-12-13' ); // it will convert date to timestamp format.
$endDate = strtotime( '2016-12-15');
$query = "SELECT * FROM news WHERE created >= '$startDate' AND created < '$endDate'";