where 子句中的 MS SQL GETDATE 月份

问题描述 投票:0回答:2

我有一张桌子

钥匙_否 导入_日期
12345678 2023-09-01
98765432 2023-10-01
85231654 2023-11-01
00020102 2023-12-01

我想查找本月之后的import_date的数据。

我有一个如下的脚本

Select * from Table1 where DATEPART(mm,Import_date)=MONTH(GETDATE()) AND DATEPART(yyyy,import_date)=YEAR(GETDATE())

但是我只能找到10月份的数据。我需要显示当月之后的所有数据。

sql sql-server where-clause datepart
2个回答
0
投票

您似乎想要查找

Import_Date
位于当前月份之后的数据。您可以通过分别比较年份和月份部分来实现这一点。具体方法如下:

SELECT * 
FROM Table1 
WHERE 
    YEAR(Import_Date) = YEAR(GETDATE()) 
    AND MONTH(Import_Date) > MONTH(GETDATE());

此查询将检索与当前日期相比

Import_Date
位于未来月份的所有行。


0
投票

如果您想显示 2023 年 9 月之后的数据,我将使用以下内容:

SELECT * FROM Table1
WHERE [Import_Date] >= '2023-10-01'

或者,如果您想根据一年中的月份进行过滤(即九月之后和一月之前的月份),我建议:

SELECT * FROM Table1
WHERE MONTH([Import_Date]) > 9

尽管我正在努力想出一个好的用例。

希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.