【问题标题】:Records from the last 2 years - complete months过去 2 年的记录 - 完整的几个月
【发布时间】:2015-04-17 08:56:30
【问题描述】:

我有代码可以将数据拉回上个月的最后一天,但我想要过去 2 年完整月份的记录,即 2013 年 3 月 - 2015 年 3 月,所以我需要限制从 2013 年 3 月 1 日开始的代码

p>

这是我目前所拥有的

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

【问题讨论】:

  • 你的问题有点不清楚。您能否展示一些示例数据以及您试图从中获得的结果?
  • 如果您让我们了解您的桌子是什么样子,这可能会有所帮助。它只是有一个您想用作过滤器的日期字段吗?还是有其他方法可以确定条目的来源?
  • 什么是sqlserver版本select @@VERSION
  • 所以是的,日期字段需要是一个过滤器,所以 DATE >= 2013 年 3 月 1 日和 DATE
  • 我确定我明白了您的要求,您想知道如何在 sql 中定义 2013 年 3 月 1 日,以便将其用作过滤器吗?如果是这样,这可能会有所帮助:stackoverflow.com/questions/3543582/…

标签: sql sql-server


【解决方案1】:

根据@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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多