我希望将日期时间值设置为0,以表示正在获取的查询中的日期和时间。
将varchar数据类型转换为日期时间数据类型会导致超出范围的值。
select case when DATECOMPLETED is null then '0000-00-00 00:00:00' else DATECOMPLETED end from FDWELCOMECALL
发布于 2019-01-28 12:06:54
正如在文档中所解释的,您的值不是有效值:
日期时间类型用于包含日期和时间部分的值。MySQL以‘YYYY:MM:SS’格式检索和显示日期时间值。支持范围是'1000-01-01 :00:00:00“到'9999-12-31 23:59:59‘。
为默认值选择一个有效值。或者学习使用NULL
值。
我还要指出,一个月的"0“和"0”的一天都不是有效的日期。
注意:COALESCE()
将简化逻辑:
select coalesce(DATECOMPLETED, '1000-01-01 00:00:00') from FDWELCOMECALL
发布于 2019-01-28 12:07:10
发布于 2019-01-28 12:08:12
正如对另一个问题的回答中所述,datetime类型没有那么低。您很可能需要使用NULL。
https://stackoverflow.com/questions/54401615
复制相似问题