0

如何将存储为 a 的字符串 'Fri, 9 Mar 2012 10:43:21 +0000 (UTC)'varchar(max)转换为datetime值 '09-03-2012',它是字符串的日期部分?

4

4 回答 4

0

如果你有 SQL Server 2012,你可以试试这个:

选择 CONVERT(date, TRY_PARSE('Fri, 9 Mar 2012 10:43:21 +0000' AS datetime2))

注意:(UTC)已被删除,它没有正确解析。

另外,请注意是否需要本地化该时间值。例如,我住在 AZ,所以通常我只是从 UTC 时间中减去 -7 小时来进行本地化。您将需要根据时区进行类似的调整

于 2012-04-27T14:42:18.273 回答
0

根据 MS:http: //msdn.microsoft.com/en-us/library/ms187928.aspx

CONVERT() 函数是将一种数据类型的表达式转换为另一种数据类型的通用函数。CONVERT() 函数可用于以不同格式显示日期/时间数据。

表格列出了 105 作为您想要的样式的代码。

因此,对于您的示例日期:

CONVERT(VARCHAR(10), 'Fri, 9 Mar 2012 10:43:21 +0000 (UTC)', 105)

应该可以解决问题。

于 2012-04-27T01:55:07.327 回答
0

使用转换并参考此页面http://msdn.microsoft.com/en-us/library/ms187928.aspx

例如 CONVERT(varchar(8), GETDATE(), 112)

于 2012-04-27T01:56:19.297 回答
0

我不得不先砍掉你的约会,但这里是:

DECLARE @ds varchar(30)='Fri, 9 Mar 2012 10:43:21 +0000 (UTC)';
SELECT CONVERT(VARCHAR(10)
,CAST(SUBSTRING(@ds
,CHARINDEX(' ',@ds)
,LEN(@ds)-(PATINDEX('%[0-9][0-9][0-9][0-9]%',@ds)+6))
AS DATETIME)
,105    
)

结果:

09-03-2012
于 2012-04-27T02:09:48.297 回答