【发布时间】:2023-03-22 21:58:01
【问题描述】:
我必须获取日期之间的月份和年份列表。目前它只返回具有相关数据的日期的月份和年份。
例如,我的日期介于:'8'+'/1'+'/'+'2015' and DATEADD(mm, 15, '8'+'/1'+'/'+'2016'
它只打印出:May2016, June2016, July2016, Auguest2016, September2016
我希望它打印出其间的所有月份和年份。这是我的 sql 查询:
select d.id_base as case_id,
c.C_LAST_ACTION AS Docketed,
c.C_CASE_TYPE AS caseType,
ct.C_NAME As caseName,
ct.C_DESCRIPTION AS caseNameDescription,
case when d.c_mod_decision_id is not null then '' else DATENAME(mm, d.c_issue_date) + DATENAME(yyyy, d.c_issue_date) end as display
from t_case_decision d JOIN T_CASE_INPUT c on c.id = d.id_base JOIN T_CASE_TYPE ct on C_CASE_TYPE = ct.id
where cast(d.c_issue_date AS date) BETWEEN '8'+'/1'+'/'+'2015' and DATEADD(mm, 15, '8'+'/1'+'/'+'2016')
【问题讨论】:
-
'8'+'/1'+'/'+'2015',嗯?这真的很奇怪。您的语法是如此清晰的 SQL Server,以至于我修改了问题以反映这一点。 -
@GordonLinoff 目前我正在尝试获取从该月开始到 15 个月的所有数据。即使月份没有数据,我也需要打印出所有月份和年份。
-
@GordonLinoff 不确定这对您是否有意义。
-
呃,你真的需要连接月份、日期和年份的值吗?
-
@L.Herrera 是的,因为我使用相同的查询在 ireport 中构建报告,显示月+年
标签: sql-server date