如何将存储为 a 的字符串 'Fri, 9 Mar 2012 10:43:21 +0000 (UTC)'varchar(max)
转换为datetime
值 '09-03-2012',它是字符串的日期部分?
问问题
548 次
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 回答