【发布时间】:2017-01-02 10:24:44
【问题描述】:
无论出于何种原因,某些日期在使用 STR_TO_DATE() 时会返回 null,而其他日期则不会。
CREATE TABLE persons (
personid int,
name varchar(100),
dob date;
insert into persons values
(5,"Gov","1985-04-23"),
(1,"Gov","1993-04-23"),
(2,"Sam","1991-11-19"),
(3,"A","1993-04-23"),
(4,"B","1991-11-19");
SELECT STR_TO_DATE( CONCAT( MONTH(DOB), DAY(DOB), YEAR(CURDATE()) ), '%m %d %Y') FROM persons;
返回
STR_TO_DATE( CONCAT( MONTH(DOB), DAY(DOB), YEAR(CURDATE()) ), '%m %d %Y')
--------------------------------------------------------------------------
(null)
November, 19 2016 00:00:00
(null)
November, 19 2016 00:00:00
(null)
【问题讨论】:
-
我更想知道它是否适用于没有零填充值的日期。顺便说一句:
dob + INTERVAL (YEAR(CURDATE()) - YEAR(dob)) YEAR也在做同样的事情(2 月 29 日除外)。
标签: mysql str-to-date