我不明白如何从我的sql表获取输出。
表日期存储在 int 中。例如,一行的日期输出类似于 1362157869 。我想在查询中今天显示订单:
php : $today = date("y-m-d", time());
query : SELECT * FROM test WHERE date = '$today'
但无效。我也试试这个:
SELECT * FROM test WHERE date LIKE '$today'
答案 0 :(得分:1)
不使用PHP var:
进行查询SELECT * FROM test WHERE date = DATE(NOW());
答案 1 :(得分:0)
您将日期存储为UNIXTIMESTAMP,因此您必须使用FROM_UNIXTIME将其转换为DATETIME,然后您必须使用DATE()函数仅提取日期部分,忽略时间:
SELECT * FROM test WHERE DATE(FROM_UNIXTIME(date)) = CURDATE()
请参阅小提琴here。然后,您可以使用以下内容提取昨天的记录:
SELECT * FROM test WHERE DATE(FROM_UNIXTIME(date)) = CURDATE() - INTERVAL 1 DAY
或具体的具体日期:
SELECT * FROM test WHERE DATE(FROM_UNIXTIME(date)) = '2013-03-01'
使用索引
确定您的日期列不仅包含日期部分,还包含时间,您还可以使用它来返回所有今天的记录:
SELECT * FROM test WHERE date >= UNIX_TIMESTAMP(CURDATE())
这是昨天的事:
SELECT * FROM test WHERE date >= UNIX_TIMESTAMP(CURDATE() - INTERVAL 1 DAY)
AND date < UNIX_TIMESTAMP(CURDATE())
或特定日期:
SELECT * FROM test WHERE date >= UNIX_TIMESTAMP('2013-03-01')
AND date < UNIX_TIMESTAMP('2013-03-01' + INTERVAL 1 DAY)