gpt4 book ai didi

sql - 将 varchar 数据类型转换为 datetime 数据类型导致值超出范围

转载 作者:行者123 更新时间:2023-12-01 19:09:17 34 4
gpt4 key购买 nike

我有以下一段从 C# Windows 服务运行的内联 SQL:

UPDATE table_name SET 
status_cd = '2',
sdate = CAST('03/28/2011 18:03:40' AS DATETIME),
bat_id = '33acff9b-e2b4-410e-baaf-417656e3c255',
cnt = 1,
attempt_date = CAST('03/28/2011 18:03:40' AS DATETIME)
WHERE id = '1855'

当我从应用程序内针对 SQL Server 数据库运行此命令时,出现以下错误:

System.Data.SqlClient.SqlException: The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. The statement has been terminated.

但是,如果我从 SQL Management Studio 中获取该 SQL 片段并运行它,它将毫无问题地运行。

有什么想法可能导致此问题吗?

最佳答案

不明确的日期格式将根据登录语言进行解释。这有效

set dateformat mdy

select CAST('03/28/2011 18:03:40' AS DATETIME)

这不是

set dateformat dmy

select CAST('03/28/2011 18:03:40' AS DATETIME)

如果您使用具有正确数据类型的参数化查询,则可以避免这些问题。您还可以使用unambiguous “未分隔”格式yyyyMMdd hh:mm:ss

关于sql - 将 varchar 数据类型转换为 datetime 数据类型导致值超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5466100/

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