首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将日期时间设置为零

如何将日期时间设置为零
EN

Stack Overflow用户
提问于 2019-01-28 12:03:57
回答 4查看 2.3K关注 0票数 0

我希望将日期时间值设置为0,以表示正在获取的查询中的日期和时间。

将varchar数据类型转换为日期时间数据类型会导致超出范围的值。

代码语言:javascript
运行
复制
select case when DATECOMPLETED is null then '0000-00-00 00:00:00' else DATECOMPLETED end from FDWELCOMECALL
EN

回答 4

Stack Overflow用户

发布于 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()将简化逻辑:

代码语言:javascript
运行
复制
select coalesce(DATECOMPLETED, '1000-01-01 00:00:00') from FDWELCOMECALL
票数 1
EN

Stack Overflow用户

发布于 2019-01-28 12:07:10

不行,0000不是有效的一年,00不是有效的月份。

你能做的最好就是把它作为null

如果这不是一个选项,则使用日期时间的最小/最大值:

1000-01-01 00:00:00 / 9999-12-31 23:59:59

正如草莓在评论中指出的那样,Date数据类型确实支持0000-00-00 (尽管正式文件声明它是无效日期/日期时间值的值)。

票数 1
EN

Stack Overflow用户

发布于 2019-01-28 12:08:12

正如对另一个问题的回答中所述,datetime类型没有那么低。您很可能需要使用NULL。

https://stackoverflow.com/a/13179063/2793683

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54401615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档