Sql 如何显示从getdate开始少于1个月的日期?

Sql 如何显示从getdate开始少于1个月的日期?,sql,sql-server,date,Sql,Sql Server,Date,我有一份报告显示了基于期间的结果,例如:1个月期间、2个月期间。。。。我试着这样提问和回答。因为我希望从当前日期起1个月内获得记录 SELECT printed_serial,[name],last_active_date FROM #Temp t INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_micard] mi on mi.cu_id = t.cu_id INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_ch

我有一份报告显示了基于期间的结果,例如:1个月期间、2个月期间。。。。我试着这样提问和回答。因为我希望从当前日期起1个月内获得记录

SELECT printed_serial,[name],last_active_date
FROM #Temp t
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_micard] mi on mi.cu_id = t.cu_id
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_ch_cuid] chcu on chcu.cu_id = t.cu_id
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_ch] ch on ch.ch_id = chcu.ch_id
WHERE last_active_date <= DATEADD(month, -1, getdate())
但预期结果是:

card id    name    last_active_date 
0110       Sara    jan 4 2019 4:15 pm

您可以在下面尝试-使用一个月前和当前日期之间的日期比较

SELECT printed_serial,[name],last_active_date
FROM #Temp t
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_micard] mi on mi.cu_id = t.cu_id
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_ch_cuid] chcu on chcu.cu_id = t.cu_id
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_ch] ch on ch.ch_id = chcu.ch_id
WHERE last_active_date >= DATEADD(month, -1, getdate())
and last_active_date <=getdate()

您只对月份和年份感兴趣,因此可以使用以下内容:

SELECT printed_serial,[name],last_active_date
FROM #Temp t
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_micard] mi on mi.cu_id = t.cu_id
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_ch_cuid] chcu on chcu.cu_id = t.cu_id
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_ch] ch on ch.ch_id = chcu.ch_id
WHERE MONTH(last_active_date) = MONTH(DATEADD(month, -1, getdate()))
     AND YEAR(last_active_date) = YEAR(DATEADD(month, -1, getdate()))

你确定你在使用mysql吗?这些括号[]看起来像sql server。您使用的是哪种dbms?该查询是特定于产品的。从当前日期算起的1个月不清楚。请提供您想要的日期周期的示例。另外,用您正在使用的数据库标记。@GordonLinoff。示例从CurrentDate开始的1个月今天的日期。它将显示2019年1月4日。。如果自当前日期起2个月显示为2018年12月4日
SELECT printed_serial,[name],last_active_date
FROM #Temp t
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_micard] mi on mi.cu_id = t.cu_id
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_ch_cuid] chcu on chcu.cu_id = t.cu_id
INNER JOIN [dbfastsconfigdataref].[dbo].[cdf_ch] ch on ch.ch_id = chcu.ch_id
WHERE MONTH(last_active_date) = MONTH(DATEADD(month, -1, getdate()))
     AND YEAR(last_active_date) = YEAR(DATEADD(month, -1, getdate()))