【问题标题】:From dd-mm-yy hh:mm:ss +tz to datetime in SQL Server从 dd-mm-yy hh:mm:ss +tz 到 SQL Server 中的日期时间
【发布时间】:2025-12-17 16:40:01
【问题描述】:

我目前在 SQL Server 中处理数据类型为 NVARCHAR(max) 且格式为 dd-mm-yy hh:mm:ss +tz 的日期,这意味着它们看起来像这样:

31-10-18 18:34:05 +00:00

而且,尽管我付出了很多努力,但我还是找不到将这些日期转换为日期时间的方法,而我使用了 CAST 和 CONVERT 函数的各种组合。

大多数时候,我收到以下错误消息:

从字符转换日期和/或时间时转换失败 字符串。

我很确定这是因为年份写成“18”而不是“2018”。

因此,我想找到执行此类转换的最简单方法。

【问题讨论】:

  • 所有日期都有 +00:00 时区吗?你想要的数据类型是什么?约会时间?日期时间2?日期时间偏移量?
  • 嗨,萨尔曼。是的,到处都是 +00:00。我想要一个日期时间数据类型。
  • 我已经发布了一个答案,它 (i) 忽略偏移量 (ii) 使用 datetimeoffset 类型来包含偏移量。

标签: sql-server datetime


【解决方案1】:

之前需要设置日期格式

SET DATEFORMAT dmy;
SELECT CAST('31-10-18 18:34:05 +00:00' as datetimeoffset)

结果

----------------------------------
2018-10-31 18:34:05.0000000 +00:00

【讨论】:

  • SET DATEFORMAT dmy; SELECT CAST('31-10-18 18:34:05 +00:00' as datetime) 因此是我的解决方案。谢谢你的诡计!
最近更新 更多