我试图从特定格式的查询中获取结果,我似乎无法找到答案。
这是我的代码:
SELECT convert(date, TimeReported, 101) as 'Error Date', count(ErrorDetails) as 'Error Count'
FROM ErrorLog
where ErrorDetails like '%login failed%'
GROUP BY Convert(date, TimeReported, 101)
order by 'Error Date' desc
我希望日期结果显示为mm / dd / yyyy
Error Date Error Count:
11/12/2015 1
11/05/2015 3
03/24/2015 4
上面的代码给出了我的结果:yyyy / mm / dd
Error Date Error Count
2015-11-12 1
2015-11-05 3
2015-03-24 4
答案 0 :(得分:0)
试试这个:
;with cte as
(
SELECT convert(varchar(10), TimeReported, 101) as 'Error Date', count(ErrorDetails) as 'Error Count'
FROM ErrorLog
where ErrorDetails like '%login failed%'
GROUP BY convert(varchar(10), TimeReported, 101)
)
select *
from cte
order by YEAR(CONVERT(date,[Error Date])) desc, [Error Count] asc
答案 1 :(得分:0)
您可以在查询中尝试以下内容:
convert(nvarchar(10), TimeReported, 103)
答案 2 :(得分:0)
如果您使用的是SQL 2012或更高版本,则可以使用更丰富的格式化数据,包括日期。使用新的Format
功能。
https://msdn.microsoft.com/en-us/library/hh213505(v=sql.110).aspx
使用此功能,您可以使用任何.NET格式说明符,单字母版本(标准)或自定义格式化程序。所以,而不是
convert(date, TimeReported, 101) as 'Error Date'
,您可以使用format(date, 'MM/dd/yyyy') as 'Error Date'
。是的,它区分大小写。如果您使用" mm"而不是" MM",你会得到分钟。