Sql 如何检索从当前日期起两个月内的记录
所以我想做的是,当我运行查询时,我想返回从当前月份开始两个月内的所有记录。例如,假设当前月份是11月,当查询运行时,我希望返回9月份的所有记录,并且只返回9月份的记录。如果我在10月份运行查询,我需要8月份的所有记录,并且只需要8月份的记录。我试图在MS SQL中实现这一点。感谢您的建议。在SQL Server中,您可以使用:Sql 如何检索从当前日期起两个月内的记录,sql,sql-server,date,Sql,Sql Server,Date,所以我想做的是,当我运行查询时,我想返回从当前月份开始两个月内的所有记录。例如,假设当前月份是11月,当查询运行时,我希望返回9月份的所有记录,并且只返回9月份的记录。如果我在10月份运行查询,我需要8月份的所有记录,并且只需要8月份的记录。我试图在MS SQL中实现这一点。感谢您的建议。在SQL Server中,您可以使用: where datecol >= dateadd(month, -3, datefromparts(year(getdate()), month(getdate()
where datecol >= dateadd(month, -3, datefromparts(year(getdate()), month(getdate()), 1)) and
datecol < dateadd(month, -2, datefromparts(year(getdate()), month(getdate()), 1))
在SQL Server中,您可以使用:
where datecol >= dateadd(month, -3, datefromparts(year(getdate()), month(getdate()), 1)) and
datecol < dateadd(month, -2, datefromparts(year(getdate()), month(getdate()), 1))
这可以在一个很好的1班轮
其中NOW()介于Date1和Date2之间 这可以在一个漂亮的内衬中完成 其中NOW()介于Date1和Date2之间 函数
GETDATE()
可用于检索当前月份
函数DATEADD(datepart,number,date)
可用于对日期执行操作。有关更多信息,请查看官方网站
因此,要检索当前月份之前两个月(-2
)的记录,可以使用以下命令:
DATEADD(月-2,GETDATE())
总之,一个示例查询用于选择从当前月份起两个月内的所有记录:
SELECT * FROM table
WHERE MONTH(month_column) = DATEADD(month, -2, GETDATE())
资料来源:
GETDATE()
可用于检索当前月份
函数DATEADD(datepart,number,date)
可用于对日期执行操作。有关更多信息,请查看官方网站
因此,要检索当前月份之前两个月(-2
)的记录,可以使用以下命令:
DATEADD(月-2,GETDATE())
总之,一个示例查询用于选择从当前月份起两个月内的所有记录:
SELECT * FROM table
WHERE MONTH(month_column) = DATEADD(month, -2, GETDATE())
资料来源:
Declare @month as int;
Set @month=datepart(month, getdate()) - 2;
Select * from yourTableName
Where month(dateCol) = @month;
您可以在变量中包含月份部分,然后可以在Where子句中使用它来过滤日期值的月份部分是否等于变量值 查询
Declare @month as int;
Set @month=datepart(month, getdate()) - 2;
Select * from yourTableName
Where month(dateCol) = @month;
到目前为止你试过什么?到目前为止你试过什么?为什么不起作用?使用
/=
和的WHERE
有什么问题吗欢迎使用stackoverflow-请查看-这将帮助您获得问题的有用答案到目前为止您尝试了什么?到目前为止您尝试了什么?为什么不起作用?使用
/=
和欢迎来到stackoverflow-请查看-这将帮助您获得问题的有用答案请在答案中添加一些解释。请在答案中添加一些解释。