我有字符串列,我想将字段转换为日期。
我正在尝试以下查询,但收到错误:
select cast('20160532' as date) AS dt;
当我选择输出时为null因为32不是日期,但是当我将此记录插入表时它会出错:
“错误的日期值20160532”
答案 0 :(得分:1)
尝试使用STR_TO_DATE()
- 当字符串格式不正确时,它会返回NULL
:
SELECT STR_TO_DATE('20160532', '%Y,%m,%d')
答案 1 :(得分:0)
http://sqlfiddle.com/#!9/cd8338/1
INSERT INTO t (my_date) VALUES
(IF((@d := STR_TO_DATE('20160532', '%Y%m%d')) IS NULL, null, @d));
INSERT INTO t (my_date) VALUES
(IF((@d := STR_TO_DATE('20160525', '%Y%m%d')) IS NULL, null, @d));