如何 select 两个去年在更实际的一年
How to select two last year in more actual year
我想知道我们如何才能 select 去年的两个在今年更多。
例如,如果我有一个 table 喜欢它:
id date_enter cost
1 19/09/2019 400$
1 20/09/2020 402$
1 19/04/2021 450$
1 19/09/2018 500$
1 05/03/2019 600$
1 19/09/2015 400$
那我要了:
id date_enter cost
1 19/09/2019 400$
1 20/09/2020 402$
1 19/04/2021 450$
1 05/03/2019 600$
我试着像这样使用 dateadd :
date_enter>=DATEADD(year,-2,GETDATE())
但是我去年才拿到2,现在想拿到2019、2020、2021
谢谢
您想获取从2019年1月1日开始的数据(即2019年、2020年和2021年的所有数据)。使用 DATE_FROM_PARTS
构造该日期。
select *
from mytable
where date_enter >= date_from_parts(year(current_date) - 2, 1, 1);
如果我理解您的需求,您需要获取从今天开始 2 年前范围内的所有日期,包括第一年开始之后的所有日期(在 2019-01-01 之后的示例中)。
那我建议在减去2年之后用YEAR函数来比较
WHERE YEAR([Date]) >= YEAR(DATEADD(YEAR,-2,GETDATE()))
快速示例:
DECLARE @tblDates TABLE
(
[Date] DATE
)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'19/09/2019',103)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'20/09/2020',103)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'19/04/2021',103)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'19/09/2018',103)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'05/03/2019',103)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'19/09/2015',103)
SELECT * FROM @tblDates
WHERE YEAR([Date]) >= YEAR(DATEADD(YEAR,-2,GETDATE()))
我想知道我们如何才能 select 去年的两个在今年更多。
例如,如果我有一个 table 喜欢它:
id date_enter cost
1 19/09/2019 400$
1 20/09/2020 402$
1 19/04/2021 450$
1 19/09/2018 500$
1 05/03/2019 600$
1 19/09/2015 400$
那我要了:
id date_enter cost
1 19/09/2019 400$
1 20/09/2020 402$
1 19/04/2021 450$
1 05/03/2019 600$
我试着像这样使用 dateadd :
date_enter>=DATEADD(year,-2,GETDATE())
但是我去年才拿到2,现在想拿到2019、2020、2021
谢谢
您想获取从2019年1月1日开始的数据(即2019年、2020年和2021年的所有数据)。使用 DATE_FROM_PARTS
构造该日期。
select *
from mytable
where date_enter >= date_from_parts(year(current_date) - 2, 1, 1);
如果我理解您的需求,您需要获取从今天开始 2 年前范围内的所有日期,包括第一年开始之后的所有日期(在 2019-01-01 之后的示例中)。
那我建议在减去2年之后用YEAR函数来比较
WHERE YEAR([Date]) >= YEAR(DATEADD(YEAR,-2,GETDATE()))
快速示例:
DECLARE @tblDates TABLE
(
[Date] DATE
)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'19/09/2019',103)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'20/09/2020',103)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'19/04/2021',103)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'19/09/2018',103)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'05/03/2019',103)
INSERT INTO @tblDates ([Date]) SELECT CONVERT(DATETIME2,'19/09/2015',103)
SELECT * FROM @tblDates
WHERE YEAR([Date]) >= YEAR(DATEADD(YEAR,-2,GETDATE()))