【发布时间】:2020-08-16 18:38:59
【问题描述】:
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
我们可以看到有些函数不喜欢不完整的日期:
某些日期函数可以用于“零”日期或不完整的日期,例如“2001-11-00”,而其他函数则不能。
我想像这样减去两个日期:
SELECT DATEDIFF(CURRENT_DATE(), birthdate)
根据 phpMyAdmin 控制台,birthdate 是 DATE 列。
但有些出生日期没有月份或日期,例如'1874-00-00'。您无法获取天数差异,因为天数未知。
有没有办法告诉它假设 1 月 1 日或什么?还是我需要自己建立日期以便它识别它?
我真的只需要大概的年差。但我得到NULL。
谢谢。
【问题讨论】:
-
忘了说结果是NULL。
-
生日列的数据类型是什么?
-
一个普通的旧日期。我还可以访问存储文本表示的另一列,但这似乎是多余的。不知道为什么它也在那里。
-
如果数据类型是 DATE,那么它也包含月份和日期。
-
有没有办法告诉它假设 1 月 1 日或什么? 告诉?不...但您可以构建一个表达式,将日期组件中的零替换为其默认值。