我有一个用于该表上的日志文件的 Mysql 表,有一个名为“log_date”的字段,它以以下格式存储日期(%Y-%m-%d %H:%i.%s ). 在 DB 上,日期看起来像 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 格式的问题的原因。为什么会这样?