今天显示表格的订单

时间:2013-06-24 12:46:14

标签: php mysql date int

我不明白如何从我的sql表获取输出。

日期存储在 int 中。例如,一行的日期输出类似于 1362157869

我想在查询中今天显示订单

   php : $today = date("y-m-d", time());

   query : SELECT * FROM test WHERE date = '$today'

无效。我也试试这个:

    SELECT * FROM test WHERE date LIKE '$today'

2 个答案:

答案 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)