如何在sql server中将日期格式从一个转换为另一个?

问题描述:

我有日期格式为星期二,2012年5月29日16时04分05秒EDT列如何在sql server中将日期格式从一个转换为另一个?

我想这个格式转换为这种格式:2012-05-29

谢谢推进

+0

使用原生格式存储日期/时间。然后使用'convert()'将它们以任何你想要的格式输出。 –

+0

建议您先查看SQL Server中的日期/时间函数,并尝试编写代码或至少分享您编写的任何代码。 –

+0

显示不太多的努力,请阅读http://stackoverflow.com/help/how-to-ask并编辑您的问题。 – opelhatza

SELECT PARSE(REPLACE('Tue, 29 May 2012 16:04:05 EDT', 'EDT', '')AS datetime USING 'en-US')AS [Date&Time]; 

OR

SELECT dateadd(HH, +4, parse(substring('Tue, 29 May 2012 16:04:05 EDT', 1, 25) as datetime)) 
+0

嗨,我的意思是转换整个列在SQL Server的日期格式 –

+0

我的答案是不满足你的要求.. @ RameshGarimella – Chanukya

declare @EDTtext varchar(29), 
     @EDTdate date 

-- key is remove abbreviation EDT 
select @EDTtext = 'Tue, 29 May 2012 16:04:05 EDT' 
select @EDTdate = parse(substring(@EDTtext, 1, 25) as date) 

select format(@EDTdate, 'dd-MM-yyyy') -- format 29-05-2012 

如果你有不同于EDT的时区,不要忘记抵消。

+0

你能解释什么是GMT/EDT的偏移量与想要改变格式? – Takarii

+0

这是奖金。转换日期时间的示例(转换为日期时间时问题仅在缩写EDT中),并将EDT更改为GMT。 – Deadsheep39

+0

奖金?如果它与要求无关,它如何成为奖励呢?如果想要更改日期组件的格式,那么如何将时间组件转换为格林尼治标准时间来处理它呢?要求是将当前日期字符串更改为dd-MM-YYYY格式 – Takarii