将数字转换为日期时间



我需要在SQL查询中将数字转换为DateTime数据类型,

这是我的输入,

18300031121994

格式为%H%M%S%d% M% Y,

预期输出,

1994-12-31 18:30:00.000

如何使用SQL查询将数值转换为日期时间…请帮帮我

这个应该可以帮你完成这项工作:

declare @dt bigint = 18300031121994
, @dtStr nchar(14)
set @dtStr = right('000000' + cast(@dt as nvarchar(14)),14) -- leading zeros would not appear in an int, so we have to lpad with 0s to avoid midnight issues
select @dtStr
,cast( right(@dtStr, 4) + '-' + substring(@dtStr, 9, 2) + '-' + substring(@dtStr, 7, 2) + ' ' + left(@dtStr, 2) + ':' + substring(@dtStr, 3, 2) + ':' + substring(@dtStr, 5, 2) as datetime)

首先将数字数据类型转换为字符串,这样就可以进行字符串操作了。

然后我们给pad留下0,以解释任何可能被"截断"的内容。通过前导零不是原始整数值的一部分

然后,我们根据给定的模式HHmmssddMMyyyy将字符串切割成其组成块,并使用适当的分隔符将它们重新组合在一起。

然后将这个yyyy-MM-dd HH:mm:ss格式的字符串强制转换回日期时间。

Per Larnu上面的评论;如果您不需要这样做/首先要弄清楚为什么要处理这样的日期是更好的(尽管可能您正在从遗留系统迁移数据/类似的东西,这是一个不可避免的步骤)。

相关内容

  • 没有找到相关文章

最新更新