【问题标题】:Convert Non-Standard varchar to DATETIME将非标准 varchar 转换为 DATETIME
【发布时间】:2021-06-17 09:12:34
【问题描述】:

我有一个非标准的日期时间被传递给我的一些 SQL Server 表,并希望有人可能已经这样做了,所以我不必在这里重新发明轮子。我可能会花一些时间用SUBSTRING 等将它拆开,但想知道是否有人有优雅的方式或可以帮助我的东西。

例子:

Tue, 16 Mar 2021 16:04:59 GMT
Fri, 12 Mar 2021 00:00:16 GMT

所以它就像... 日(垃圾),dd mmm yyyy HH:MM:SS 时区(垃圾)

【问题讨论】:

  • 如果格式是固定的,你可以简单CONVERT(datetime, SUBSTRING([DateCol], 6, 20))但是你仍然单独处理时区

标签: sql-server datetime type-conversion


【解决方案1】:

嗯,优雅是一种延伸,但这很有效:)

DECLARE @myDate varchar(50)
SET @myDate = 'Tue, 16 Mar 2021 16:04:59 GMT'

SELECT @myDate AS [myDate], CONVERT(DATETIME, LEFT(SUBSTRING(@myDate, 5, LEN(@myDate)), LEN(SUBSTRING(@myDate, 5, LEN(@myDate))) - CHARINDEX(' ', REVERSE(SUBSTRING(@myDate, 5, LEN(@myDate)))))) AS [finalMyDate]

而这一款是简单而优雅的蛋糕!谢谢松鼠

DECLARE @myDate varchar(50)
SET @myDate = 'Tue, 16 Mar 2021 16:04:59 GMT'

SELECT CONVERT(datetime, SUBSTRING(@myDate, 6, 20))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2017-11-29
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2018-07-03
    相关资源
    最近更新 更多