我有一个字符串。
Mon Nov 16 07:36:05 IST 2015
我想将此String转换为SQl Server 2008 GETUTCDATE()格式。
2015-11-16 09:21:03.107
任何帮助都将不胜感激。
答案 0 :(得分:0)
没有什么是不可能的。 MS SQL Server将许多格式转换为datetime。你可以试试这个:
declare @d varchar(50)='Mon Nov 16 07:36:05 IST 2015'
;with dd as (--reorganize the string and build xml
select cast('<dd><d>'+replace(@d,' ','</d><d>')+'</d></dd>' as xml) d
)
select dateadd(hh,--add hours
case t.v.value('d[5]','varchar(10)') --process time zone
when 'IST' then 2 --probably you need some reference table
when 'EST' then -5
else 0 end,
cast(t.v.value('d[2]','varchar(10)') +' '+t.v.value('d[3]','varchar(10)')
+' '+t.v.value('d[6]','varchar(10)') +' '+t.v.value('d[4]','varchar(10)')
--Nov 16 2015 07:36:05 can be converted
as datetime)) [date and time]
from dd cross apply dd.d.nodes('dd') t(v)