Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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 过去2年的记录-完整月份_Sql_Sql Server - Fatal编程技术网

Sql 过去2年的记录-完整月份

Sql 过去2年的记录-完整月份,sql,sql-server,Sql,Sql Server,我有代码将数据拉回到上个月的最后一天,但我需要过去2年完整月份(即2013年3月至2015年3月)的记录,因此我需要代码从2013年3月1日起进行限制 这就是我目前所拥有的 select * from table where Date <= DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)) select*from table where Date根据@CurrentDate中传递的当前日期,您可以根据下面的sql获取上个月的最后日期

我有代码将数据拉回到上个月的最后一天,但我需要过去2年完整月份(即2013年3月至2015年3月)的记录,因此我需要代码从2013年3月1日起进行限制

这就是我目前所拥有的

select * from table where Date <= DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))

select*from table where Date根据
@CurrentDate
中传递的当前日期,您可以根据下面的sql获取上个月的最后日期和2年前的日期

DECLARE @CurrentDate DATE = CURRENT_TIMESTAMP
DECLARE @LastMonthEOMDate DATE
DECLARE @TwoYearOldDate DATE

SET @LastMonthEOMDate = DATEADD(DAY,-DATEPART(day,@CurrentDate),@CurrentDate)
SET @TwoYearOldDate = DATEADD(YEAR,-2,@LastMonthEOMDate)

SELECT @CurrentDate,@LastMonthEOMDate,@TwoYearOldDate


select * from table where Date >= @TwoYearOldDate AND Date <= @LastMonthEOMDate
DECLARE@CurrentDate=CURRENT\u时间戳
声明@LastMonthEOMDate日期
声明@TwoYearOldDate
设置@LastMonthEOMDate=DATEADD(天,-DATEPART(天,@CurrentDate),@CurrentDate)
设置@TwoYearOldDate=DATEADD(年份,-2,@LastMonthEOMDate)
选择@CurrentDate、@LastMonthEOMDate、@TwoYearOldDate

从Date>=@TwoYearOldDate和Date的表格中选择*您的问题有点不清楚。你能展示一些样本数据和你试图从中得到的结果吗?如果你能让我们了解一下你的表是什么样子,这可能会有所帮助。它是否只是有一个您想用作过滤器的日期字段?或者有其他方法来确定条目的来源吗?什么是sqlserver版本
选择@@version
所以是的日期字段需要是一个筛选器,所以日期>=2013年3月1日和日期我确信我了解您的要求,您想知道如何在sql中定义2013年3月1日,以便可以将其用作筛选器吗?如果是这样,这可能有助于: