gpt4 book ai didi

sql-server - SQL Server 代理错误 : "the conversation of a varchar data type to a datetime data type resulted in an out-of-range.""

转载 作者:行者123 更新时间:2023-12-02 17:47:58 25 4
gpt4 key购买 nike

我创建了一个可在 SQL Server Management Studio 中运行的小脚本,然后使用相同的脚本创建了一个 SQL Server 代理作业;但运行后出现错误:

The conversation of a varchar data type to a datetime data type resulted in an out-of-range

我通过将日期格式更改为 ISO 8601 解决了该问题,但我没有发布我的第一个脚本如何在 SSMS 上运行,而不是在 SQL Server 代理中运行。

第一个脚本:

declare @teste datetime
set @teste = '31/12/2099 00:00:00'
select @teste

修复错误:

declare @teste datetime
set @teste = '20991231 00:00:00'
select @teste

最佳答案

这就是为什么在使用日期(时间)数据类型时使用明确的格式如此重要的原因之一。无论语言和数据类型如何,SQL Server 中唯一明确的格式是 yyyyMMddyyyy-MM-ddThh 格式: mm:ss.

对于日期 '31/12/2099 00:00:00' 以及您登录所使用的语言,SQL Server 似乎将该值解释为第 31 个月的第 12 天,2099 年。这一年没有 31 个月,因此会出现错误。 (DB<>Fiddle)。值得注意的是,date(以及其他"new"日期时间数据类型)的行为有所不同,并且也可以明确地理解格式yyyy-MM-dd;在此通知DB<>fiddle datetime 值的差异仅仅是由于语言设置造成的。

如您所见,解决方案是使用明确的格式。因此,当您使用日期和时间时,我建议使用字符串'2099-12-31T00:00:00'

关于sql-server - SQL Server 代理错误 : "the conversation of a varchar data type to a datetime data type resulted in an out-of-range."",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57372380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com