SQL:如何将这些日期字符串转换为日期类型
如何使用SQL语句将下面的varchar数据转换为日期数据类型SQL:如何将这些日期字符串转换为日期类型,sql,sql-server,tsql,Sql,Sql Server,Tsql,如何使用SQL语句将下面的varchar数据转换为日期数据类型 Oct 25, 2004 May 02, 2006 Nov 19, 2002 如果是2012+,则可以使用Try\u Convert()。对于任何转换失败,这将返回NULL,而不是抛出错误 示例 Declare @YourTable Table ([SomeCol] varchar(50)) Insert Into @YourTable Values ('Oct 25, 2004') ,('May 02, 2006') ,('
Oct 25, 2004
May 02, 2006
Nov 19, 2002
如果是2012+,则可以使用Try\u Convert()。对于任何转换失败,这将返回NULL,而不是抛出错误 示例
Declare @YourTable Table ([SomeCol] varchar(50))
Insert Into @YourTable Values
('Oct 25, 2004')
,('May 02, 2006')
,('Nov 19, 2002')
,('Not a Date Format')
Select *
,AsDate = try_convert(date,SomeCol)
from @YourTable
返回
SomeCol AsDate
Oct 25, 2004 2004-10-25
May 02, 2006 2006-05-02
Nov 19, 2002 2002-11-19
Not a Date Format NULL -- << Notice Returned NULL
SomeCol AsDate
2004年10月25日2004-10-25
2006年5月2日2006-05-02
2002年11月19日2002-11-19
不是空的日期格式--你试过什么吗?@lad2025是的。我试过铸造和转化。此格式似乎没有格式说明符。如果默认值不是EN
?SQL Server 2012及更高版本也提供了TRY\u CONVERT
。表示“TRY\u CONVERT”不是可识别的内置函数名。尽管SSMS将其突出显示为关键字“我的服务器是2012年,但看起来数据库兼容级别设置为2008年,改变了这一点,它工作起来了。”我看到转换失败,因为我的一行中有无法转换的数据,而as try\U convert会跳过任何错误数据