在T-SQL(YYYMMDD)中转换字符串

我有一个列的exit_date,varchar像
5/21/2008 0:00
,我需要将它更新为像
YYYYMMDD
这样的字符串,任何方法都可以吗?
5/21/2008 0:00  ==> 20080521  
1/1/2007 0:00   ==> 20070101
怎么做像
select convert('5/21/2008 0:00', 'YYYYMMDD').
    
已邀请:
CONVERT允许在两个方向上转换日期时间/ varchar的样式。说,你有一个未列出的格式。而且你实际上也有2次转换:你需要首先进入日期时间 在我的本地SQL安装中,它具有默认的“us_english”设置,这是开箱即用的
select convert(datetime, '5/21/2008 0:00')
从而
select convert(char(8), convert(datetime, '5/21/2008 0:00'), 112)
您可以使用SET LANGUAGE临时修改为us_english     
转到http://www.sql-server-helper.com/tips/date-formats.aspx     
我没有首先看到它是一个需要转换的varchar列。 所以,正如我在对Gidon的回答中所说的那样,基本上你应该这样:
CONVERT(varchar(8), CAST(your_varchar_date AS datetime), 112)
。 如果您要就地转换这些值,那么这里有一个更全面的例子来说明如何应用它:
UPDATE your_table
SET exit_date = CONVERT(varchar(8), CONVERT(datetime, exit_date), 112)
    
我刚刚在我的博客上发布了一个函数,以使用.Net样式格式掩码支持T-SQL中的日期转换。不试图插入我的博客或任何东西它只是我发布我的代码片段的地方。 使用我的功能
SELECT dbo.fnc_FormatDate(getdate(), 'YYYYMMDD')
会做你想要的。 http://bitmugger.blogspot.com/2011/07/convert-t-sql-datetime-to-strings-using.html     

要回复问题请先登录注册