Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:如何将这些日期字符串转换为日期类型_Sql_Sql Server_Tsql - Fatal编程技术网

SQL:如何将这些日期字符串转换为日期类型

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') ,('

如何使用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')
,('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会跳过任何错误数据