如何可靠地将 YYYYMMDDhhmmss<offset> 转换为 date/time?

How can I reliably convert YYYYMMDDhhmmss<offset> to a date/time?

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

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

我尝试了 CAST ('20150614140520-0500' As Date) 但它 returns null

我也尝试了 CAST (LEFT('20150614140520-0500',14) As Date) 以及其他一些变体,但没有成功。

请试试这个:

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/

您必须取上例中的前 14 个字符:

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