我正在尝试编写mysql查询以获取今天已下达的所有订单。但是我遇到了很多麻烦,因为我的数据库使用unix时间戳存储日期。

我已经可以使用以下命令将其转换为更易理解的日期,但WHERE子句不起作用。

SELECT DATE_FORMAT(FROM_UNIXTIME(`entryDate`), '%Y-%m-%d') as entryDate, id FROM customers_orders WHERE entryDate = CURDATE()


这将返回零结果,我不知道为什么。当我在没有WHERE的情况下运行查询时,会得到结果。

我创建了一个SQL提琴:http://sqlfiddle.com/#!2/93f02/13(但是它现在离线...)

我也尝试过

SELECT CURDATE()
// Output: 2013-10-30 (own database)
// Output: October, 30 2013 00:00:00+0000 (SQLfiddle)


不知道为什么它在SQLfiddle上返回的方式不同,但是可以使用以下方法解决;

SELECT DATE_FORMAT(CURDATE(), '%Y-%m-%d')
// Output: 2013-10-30

最佳答案

尝试这个

SELECT DATE_FORMAT(FROM_UNIXTIME(`entryDate`), '%Y-%m-%d') as entryDate, id
FROM customers_orders WHERE DATE_FORMAT(FROM_UNIXTIME(`entryDate`), '%Y-%m-%d') = CURDATE()

关于mysql - Mysql:选择今天的所有订单(转换unix时间戳),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19679157/

10-13 01:48