【问题标题】:Date condition not yielding any results in MySQL query [duplicate]日期条件在 MySQL 查询中没有产生任何结果 [重复]
【发布时间】:2018-02-01 00:12:39
【问题描述】:

我有一张这样的桌子:

> desc my_tab

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| host  | varchar(128) | NO   |     |         |       |
| state | varchar(128) | YES  |     | NULL    |       |
| cdt   | datetime     | YES  |     | NULL    |       |
| mdt   | timestamp    | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

有很多行的日期 >= '31-jan-2018 00:00:00'。如果我运行select * from my_tab,我会看到它们。但是,当我运行此查询时:

select * from my_tab where cdt >= '31-jan-2018 00:00:00'

我没有得到任何结果。

我做错了什么?

【问题讨论】:

  • 这不像是日期时间!?!?!?! '2018-01-31 00:00:00' 看起来像一个日期时间

标签: mysql sqldatetime


【解决方案1】:

https://dev.mysql.com/doc/refman/5.7/en/date-and-time-types.html

尽管 MySQL 尝试以多种格式解释值,但日期部分必须始终按年-月-日顺序(例如,'98-09-04')给出,而不是按月-日-年或日- 其他地方常用的月-年顺序(例如,'09-04-98'、'04-09-98')。

【讨论】:

  • 我敢肯定这是 SQL 用户的常见错误,这个问题在 Stack Overflow 上已经出现过很多次了,但我只是要发布这个答案,而不是花时间去寻找过去的副本之一。其他人可以做到这一点。
猜你喜欢
  • 2019-08-07
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2022-09-27
  • 2016-03-16
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
相关资源
最近更新 更多