我从Java输出中获取日期为字符串: Wed Apr 27 09:56:56 CEST 2016
我想在调试期间手动避免在我的表中的datetime字段中键入“2016-04-2..etc”,并且还避免创建用于格式化该日期的手动方法。
相反,我想在数据库上动态执行此操作。我想将给定的字符串格式转换为日期。我尝试了很多例子,但我无法解决。我发现最接近的是:
select convert(datetime, 'Wed Apr 27 09:56:56 CEST 2016', 127) from mytable
我在SQL Server 2012中需要这个。似乎由于文档(https://msdn.microsoft.com/en-us/library/ms187928.aspx),它可以解析格式,但它无法解析我注意到的这种字符串。< / p>
有人知道如何将此给定字符串转换为日期吗?
答案 0 :(得分:3)
请尝试以下查询:
select cast(substring(replace ('Wed Apr 27 09:56:56 CEST 2016','CEST','') ,4,len(replace ('Wed Apr 27 09:56:56 CEST 2016','CEST',''))) as datetime)
答案 1 :(得分:3)
select convert(datetime, REPLACE((SUBSTRING('Wed Apr 27 09:56:56 CEST 2016', PATINDEX('%CEST%', 'Wed Apr 27 09:56:56 CEST 2016')+5, 4)
+ ' ' + SUBSTRING('Wed Apr 27 09:56:56 CEST 2016', 5, (PATINDEX('%CEST%', 'Wed Apr 27 09:56:56 CEST 2016')-5))),'CEST',''), 109)
答案 2 :(得分:2)
如果格式已修复,则此查询应该有效
SELECT CONVERT(DATETIME,REPLACE(SUBSTRING('Wed Apr 27 09:56:56 CEST 2016',4, LEN('Wed Apr 27 09:56:56 CEST 2016')-3),'CEST','')) from mytable