MYSQL DateTime'0000-00 00:00:00'+间隔1个月不小于NOW()

时间:2012-03-18 14:16:21

标签: mysql sql datetime

我在表格中有一个DATETIME字段,我在插页上设置为'0'。 该值最终等于'0000-00-00 00:00:00' 当我使用时:

SELECT ...
 WHERE DATE+INTERVAL 5 MONTH < NOW()

我没有得到这些行。这与1970年有什么关系吗?

3 个答案:

答案 0 :(得分:4)

date列可能是null,而不是0000-00-00。要验证这一点,请尝试:

WHERE coalesce(DATE,'1900-01-01') + INTERVAL 5 MONTH < NOW()

null的比较是neither true nor false,但是“未知”。由于where子句要求条件为真(而不是虚假或未知),因此从结果集中过滤出null日期的行。

答案 1 :(得分:3)

在mysql中,日期时间的支持范围是“1000-01-01 00:00:00”到“9999-12-31 23:59:59”。

可能该列为null但您将其视为'0000-00-00 00:00:00'

答案 2 :(得分:-2)

但是我可以存储比“1000-01-01”更早的日期 这是我的表格和数据:

select * from typetest;

 --------------------------------
 | number | string | date       |
 --------------------------------
 |    255 | yoodo  | 0999-12-31 |
 --------------------------------

的MySQL&GT; desc typetest;

+--------+---------------------+------+-----+---------+-------+
| Field  | Type                | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| number | tinyint(3) unsigned | YES  |     | NULL    |       |
| string | char(5)             | YES  |     | NULL    |       |
| date   | date                | YES  |     | NULL    |       |
+--------+---------------------+------+-----+---------+-------+