我有一个日期,我希望像“Jan 05”那样显示为月份和年份。 我在查询中使用了以下SQL日期名(月,eFolder.eCreationTime)+''+ datename(year,eFolder.eCreationTime)作为“MonthYear”。
然而,在SSRS上,我发现很难在列分组中对其进行排序,因为它按字母顺序排列。无论如何要对此进行排序,或者问题在于上面提到的SQL作为连接它的问题 我尝试在组级别和文本框中进行排序但没有成功。
提前谢谢
这就是sql在分钟时的样子
SELECT
case when SUBSTRING(eFolder.eFolderName,1,2) = 'IM' then 'Incidents'
when SUBSTRING(eFolder.eFolderName,1,2) = 'RF' then 'Requests'
else null end "Request or Incident",
count(eFolder.eFolderName) as "Log No",
eUser2.eDistinguishedName,
datename(month,eFolder.eCreationTime) + ' ' + datename(year,eFolder.eCreationTime) as "Month"
FROM
eUser eUser2 RIGHT OUTER JOIN prcIncidentManagement ON (eUser2.eUserName=prcIncidentManagement.AssignedTo)
INNER JOIN eFolder ON (prcIncidentManagement.EFOLDERID=eFolder.eFolderID)
group by
case when SUBSTRING(eFolder.eFolderName,1,2) = 'IM' then 'Incidents'
when SUBSTRING(eFolder.eFolderName,1,2) = 'RF' then 'Requests'
else null end ,
eUser2.eDistinguishedName,
datename(month,eFolder.eCreationTime) + ' ' + datename(year,eFolder.eCreationTime)
答案 0 :(得分:0)
不要在SQL中进行字符串转换。将数据作为日期值返回,并在SSRS中执行字符串格式化。
不应将日期存储(或检索)为文本的众多原因之一。
我将其分组为几个月的原因是减少行数和时间。
您仍然可以按月对其进行分组,而无需将其转换为字符串。只需返回代表该月份的日期(例如2015-10-01
)
其他选择:
CDate
或DateTime.ParseExact()
)