2016-04-27 63 views
1

我收到日期字符串从Java输出:周三4月27日9点56分56秒CEST 2016转换特定字符串格式到SQL Server 2012的日期时间

我想避免手动输入“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),它可以分析可能的格式,但它不能解析这种字符串的,我注意到。

任何人都知道如何将给定的字符串转换为日期?

回答

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) 
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

如果格式是固定的,这个查询应该工作

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 
相关问题