我正在寻找一种简单的方法来选择日期时间列,这些列是000-00-00 00:00:00(基本上是默认的未设置值)。
以下查询似乎有效:
SELECT * FROM myTable WHERE datetimeCol < 1
但是这会在所有时间和不同的mysql版本中可靠地工作吗?
答案 0 :(得分:6)
我会像这样检查“零”日期:
SELECT * FROM myTable WHERE datetimeCol = CONVERT(0,DATETIME)
我更倾向于使用不等式谓词的等式谓词;它似乎更清楚地传达了我的意图。如果语句中有更多谓词,并且datetimeCol是索引中的前导列,则可能有助于优化器使用多列索引。
答案 1 :(得分:4)
试试这个:
SELECT * FROM myTable WHERE datetimeCol = '0000-00-00 00:00:00'
事后看来可能很明显;)
答案 2 :(得分:3)
比较0
值:
datetimeCol = 0
答案 3 :(得分:1)
试试这个:
SELECT * FROM myTable WHERE UNIX_TIMESTAMP(datetimeCol) = 0