我想将sql日期时间格式化为以下格式
2011-04-28 23:53:13 -----> Thu Apr 28 23:53:13 UTC 2011
遗憾的是,我的2008 SQL Server不支持FORMAT功能 它说那个
' FORMAT'不是公认的内置函数名称。
答案 0 :(得分:3)
尝试以下代码。我从你的问题描述中假设UTC为常数
SELECT SUBSTRING(DATENAME(DW,GETUTCDATE()),1,3) + ' ' +
SUBSTRING(DATENAME(MM,GETUTCDATE()),1,3) +' '+
CAST(DATEPART(DD,GETUTCDATE()) AS VARCHAR(3)) + ' '
+cast( cast(GETUTCDATE() as time(0)) as varchar(20)) + ' UTC '+
DATENAME(YY,GETUTCDATE())
答案 1 :(得分:0)
FORMAT
是自2008年以来SQL Server 2012更改的一部分,对于旧版本的SQL Server,请使用CONVERT
:
SELECT(SUBSTRING(DATENAME(DW,GETUTCDATE()),1,3)+ ' ' + CONVERT(VARCHAR(20), GETUTCDATE(), 100))
唯一的问题是它没有时区。您的数据库日期时间日志是否使用UTC保存(基于良好实践,它应该)?如果是,那么您可以附加字符串' UTC'以下查询。