【发布时间】:2022-11-22 18:44:19
【问题描述】:
对于一个生产系统,不同的日期/时间格式,我得到的数据时间类似于11.22.2022 09.10.00,当尝试在 sql 查询下运行时,我得到错误The conversion of a varchar data type to a datetime data type resulted in an out-of-range value,
我尝试在查询 '{ac.LastCollectionTime:MM/dd/yyyy HH:mm:ss}'),") 之类的 SQL 之前转换日期,但它没有转换。
DECLARE @data TABLE(Id uniqueidentifier, Value DateTime)
INSERT INTO @data VALUES ('57f5a153-3cce-48d4-aa0d-894c14b1a2ab', '11.22.2022 09.10.00')
UPDATE A SET LastCollectionTime = AD.Value
FROM App A INNER JOIN @data AD on AD.Id = A.Id
如何解决这个问题?
【问题讨论】:
-
11.22.2022我觉得很奇怪。我的日历不包含当年的 22 个月 -
11 是月份,22 是日期:)
-
那是 SQL Server 可以转换的格式吗?错误消息听起来不一样——你能在查询数据库之前自己转换日期吗?
-
使用 C# 代码,我尝试转换
'{ac.LastCollectionTime:MM/dd/yyyy HH:mm:ss}'),"),但日期仍然是这样的 -
我认为您可能需要将字符串解析为 DateTime 对象。它看起来不像任何默认格式(诚然,需要处理月份和日期的文化交换),但时间“09.10.00”看起来并不熟悉,我希望是“09:10:00”
标签: c# sql sql-server-2016