首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >datetime2溢出误差

datetime2溢出误差
EN

Stack Overflow用户
提问于 2016-04-08 19:31:37
回答 2查看 246关注 0票数 0

我试图使用以下语法将13年添加到以datetime2形式存储的生日(dateadd(yy, 13,isNull(cast(p.birthDTS作为日期时间),cast(‘1/1/1950“作为日期时间)

然后,我得到了向“datetime”列添加一个值,导致溢出。

我搜索了max(p.birthDTS),它返回了1988-10-17 00:00:00.0000000。

我得到了@svcStart 2015-04-08 13:10:49.193

我有点迷糊了。有什么帮助吗?

jb

EN

回答 2

Stack Overflow用户

发布于 2016-04-08 19:40:39

如果您使用的值是DATETIME2,您可能想尝试将您的值转换为DATETIME2,而不是DATETIME

代码语言:javascript
复制
DATEADD(yy,13,ISNULL(CAST(p.birthDTS AS DATETIME2),CAST('1/1/1950' AS DATETIME2)))

假设您没有任何无效的数据或类似的问题,并且您提供的示例数据是正确的(即最大的是1988-10-17),这似乎是正确的在这里看到的

我会确保您再次检查所有数据类型,以确保它们是按预期定义的,并考虑再次查询数据以检查任何边缘情况(例如,最大和最小值、可能的空值等)。

票数 1
EN

Stack Overflow用户

发布于 2016-04-08 19:41:19

如果日期字段中的记录中的值不是有效日期,或者在此值中添加了一些月或日期,并且该值的输出将超过日期范围,则可能会遇到此错误。

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

https://stackoverflow.com/questions/36507858

复制
相关文章

相似问题

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