Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何检索从当前日期起两个月内的记录_Sql_Sql Server_Date - Fatal编程技术网

Sql 如何检索从当前日期起两个月内的记录

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()

所以我想做的是,当我运行查询时,我想返回从当前月份开始两个月内的所有记录。例如,假设当前月份是11月,当查询运行时,我希望返回9月份的所有记录,并且只返回9月份的记录。如果我在10月份运行查询,我需要8月份的所有记录,并且只需要8月份的记录。我试图在MS SQL中实现这一点。感谢您的建议。

在SQL Server中,您可以使用:

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())
资料来源:


您可以在变量中包含月份部分,然后可以在Where子句中使用它来过滤日期值的月份部分是否等于变量值

查询

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-请查看-这将帮助您获得问题的有用答案请在答案中添加一些解释。请在答案中添加一些解释。