需要 yyyy-mm 格式的日期,并且应该分组以获得
计数但是当我给出
group by date is says invalid
我找到了这个解决方案
任何人都可以通过提供其他解决方案来帮助我
select
count(*) as count,
Convert(char(10), RH.updated_datetime, 105) as date,
SUM(
datediff(SECOND,
PRI.procedure_performed_datetime ,RH.updated_datetime
)
)/count(*) as average_reporting_tat
from
report R,
report_history RH,
study S,
procedure_runtime_information PRI,
priorities PP,
patient P,
"procedure" PR
where
RH.report_fk=R.pk and RH.pk IN (
select pk from (
select * from report_history where report_fk=r.pk
) as result
where old_status_fk IN (21, 27)
) AND R.study_fk = S.pk
AND S.procedure_runtime_fk = PRI.pk
AND PRI.procedure_fk = PR.pk
AND S.priority_fk = PP.pk
AND PRI.patient_fk = P.pk
AND RH.updated_datetime >= '2012-05-01'
AND RH.updated_datetime <= '2013-09-12'
group by Convert(char(10), RH.updated_datetime, 105)
我认为最简单的方法如下:
CONVERT(VARCHAR(7), RH.updated_datetime, 126)
但是,我从来不喜欢在应用程序层之前将日期转换为字符串,所以如果是我,我会将其保留为日期格式,但使用以下方法转换每月第一天的每个日期:
DATEADD(MONTH, DATEDIFF(MONTH, 0, RH.updated_datetime), 0)
这意味着您的应用程序接收该列作为日期,并且可以作为日期进行操作,按日期排序等,那么如果您确实想将其显示为yyyy-mm
您可以在最后一刻进行格式化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)