我有一个Mysql表,用于在那个表上的日志文件,有一个名为'log_date‘的字段,它以以下格式存储日期( %Y-%m-%d %H:%i.%s ).On数据库日期看起来像这个2013-20-05 00:00.00。假设今天的日期是2013-20-05,我有从2013-01-01到现在的日志文件。如果我像这样运行一个查询:
SELECT * FROM log_table
WHERE STR_TO_DATE(log_date, '%Y-%m-%d %H:%i.%s') < '2013-05-05 00:00.00'如果我用如下所示的查询将< (less then)反转为a> (greater ):
SELECT * FROM log_table
WHERE STR_TO_DATE(log_date, '%Y-%m-%d %H:%i.%s') > '2013-05-05 00:00.00'然后它返回零行。为什么会发生这种情况?
发布于 2013-05-21 05:03:52
log_date应为DateTime数据类型。使用MySQL日期函数要简单得多。一些例子
SELECT * FROM log_table
WHERE DATE(log_date) < '2013-05-05'
SELECT * FROM log_table
WHERE DATE(log_date) > '2013-05-05'
SELECT * FROM log_table
WHERE DATE(log_date) BETWEEN '2013-04-05' AND '2013-05-05'
SELECT * FROM log_table
WHERE DATE(log_date) BETWEEN DATE(CURRENT_DATE() - INTERVAL 2 WEEK) AND
DATE(CURRENT_DATE() + INTERVAL 4 DAY)发布于 2013-05-21 13:11:17
你可以试一试..
WHERE DATE_FORMAT(AUCTION_DATE, '%Y%m%d') >= DATE_FORMAT('2013/5/18', '%Y%m%d')您还可以使用now()函数获取今天的日期。
https://stackoverflow.com/questions/16657202
复制相似问题