[英]SQL Server dates stored as “Fri Aug 19 2016 01:00:00 GMT-0400”
I inherited some tables and some of the supposed date columns have this type of value Fri Aug 19 2016 01:00:00 GMT-0400
in them. 我继承了一些表,并且某些假定的日期列中的值类型为Fri Aug 19 2016 01:00:00 GMT-0400
。 How could I convert it to just mm/dd/yyyy hh:mm
in my query? 如何在查询中将其转换为mm/dd/yyyy hh:mm
?
I tried a lot of things and it keeps complaining 我尝试了很多事情,而且一直抱怨
Cannot convert from string to datetime format 无法从字符串转换为日期时间格式
Thanks in advance! 提前致谢!
It sounds like your columns are not datetimes but strings. 听起来您的列不是日期时间,而是字符串。 It would be better to convert those columns to the datetime type. 最好将这些列转换为datetime类型。 But you can achieve what your looking for with something like this: 但是您可以通过以下方式实现您的期望:
SELECT CONVERT(varchar, CONVERT(datetime, SUBSTRING(mydatecolumn,5,20)), 101)
+ ' ' +
CONVERT(varchar, CONVERT(datetime, SUBSTRING(mydatecolumn,5,20)), 8)
Below query works in SQL Server 2012 and not considering UTC value 下面的查询在SQL Server 2012中有效,并且不考虑UTC值
DECLARE @Input varchar(32), @Output VARCHAR(32)
SELECT @Input = 'Fri Aug 19 2016 1:00:00 GMT-400'
SELECT @Output = FORMAT(CONVERT(DATETIME, STUFF(STUFF(@Input, 1, 4, ''), PATINDEX('%[^0-9 :]%', LTRIM(SUBSTRING(STUFF(@Input, 1, 4, ''), PATINDEX('%[^A-Z]%', STUFF(@Input, 1, 4, '')), LEN(STUFF(@Input, 1, 4, ''))))) + PATINDEX('%[^A-Z]%', STUFF(@Input, 1, 4, '')), LEN(STUFF(@Input, 1, 4, '')), '')), 'MM/dd/yyyy HH:mm')
SELECT @Output
If the Date string values have the same exact format (ie ddd mmm dd yyyy hh:nn:ss) then the following should work: 如果“日期”字符串值具有相同的确切格式(即ddd mmm dd yyyy hh:nn:ss),则应执行以下操作:
DECLARE @Dt NVARCHAR(50) = 'Fri Aug 19 2016 01:00:00 GMT-0400'
SELECT
CAST(CONVERT(VARCHAR(20), SUBSTRING(@Dt, CHARINDEX(' ', @Dt) + 1, LEN(@Dt)), 120) AS DATETIME)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.