如何可靠地将YYYYMMDDhhmmss <offset>转换为日期/时间?

时间:2015-06-16 20:14:20

标签: sql datetime intersystems-cache

我有一个数据源,日期如下:20150614140520-0500

如何更好地展示?它实际上不需要在技术上进行转换,这仅用于报告。理想情况下,它会输出2015-06-14 2:05 PM (EST),但我也希望语句尽可能简单,因此时区偏移和12小时时间是可选的。

我尝试CAST ('20150614140520-0500' As Date)但它返回null

我还试过CAST (LEFT('20150614140520-0500',14) As Date)以及其他一些没有运气的变种。

2 个答案:

答案 0 :(得分:1)

请试试这个:

convert(datetime,stuff(stuff(stuff(datevalue, 9, 0, ' '), 12, 0, ':'), 15, 0, ':')) ConvertedDate

正如Dinesh Kumar Rajendran在他的博客中所建议的那样: https://rdineshkumar.wordpress.com/tag/how-to-convert-yyyymmddhhmmss-to-datetimedatetime-in-sql-server/

答案 1 :(得分:1)

您必须从前面的示例中获取前14个字符:

print convert(datetime,stuff(stuff(stuff(LEFT('20150614140520-0500',14) , 9, 0, ' '), 12, 0, ':'), 15, 0, ':'))