我正在尝试根据时间从数据库中获取记录,特别是上周和上个月,但我被困在某个地方。这些是我用于获取上周信息的MySQL查询:
"SELECT *FROM posts WHERE date BETWEEN DATE SUB( CURDATE() , INTERVAL 1 WEEK) AND CURDATE()"
"SELECT *FROM posts WHERE date BETWEEN DATE SUB( CURDATE() , INTERVAL 7 DAY) AND DATE SUB( CURDATE() , INTERVAL 13 DAY) "
"SELECT *FROM posts WHERE date <= DATE_SUB( CURDATE() , 8 DAY)"
我也这样做了:
$lastweek = time() - (7*24*60*60);
使用以下查询:
"SELECT *FROM posts WHERE date <= '$lastweek' "
但它没有按照预期的方式运作。例如,如果数据库中有2014-07-26
之类的日期,而2013-07-26
之类的另一个日期,则会同时获取两者,而应仅提取2014-07-26
。
我正在使用MySQL CURDATE()
函数插入数据库。
答案 0 :(得分:0)
您无法将处于unix时间戳格式的日期与sql格式进行比较。您需要转换值:
SELECT * FROM posts WHERE date&lt; = from_unixtime($ lastweek)