我有一个用于日志文件的Mysql表格,在该表格中有一个字段名为'log_date',它以以下格式( %Y-%m-%d %H:%i.%s )存储日期。在数据库中,日期看起来像这样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'
这将返回数据库中所有行,包括大于2013-05-05 00:00.00的行。
如果我将“<”(小于)改为“>”(大于),查询将如下所示:
SELECT * FROM log_table
WHERE STR_TO_DATE(log_date, '%Y-%m-%d %H:%i.%s') > '2013-05-05 00:00.00'
然后它返回零行。我认为时间戳是导致问题的原因,我之前处理过日期格式但没有处理过 DateTime 格式。为什么会发生这种情况?
log_date
的数据类型是什么? - Kermit