我們如何撰寫一個 sql 函式來回傳 getdate() 在 FromDate 和 Todate 之間的記錄,如下所示
if getdate() exists between FromDate and Todate then return
elseif DateAdd(Year, -1, getdate()) is between FromDate and Todate.
elseif DateAdd(Year, -2, getdate()) is between FromDate and Todate.
我的表
ProductID FromDate Todate
A 1/2/2022 1/2/2023
A 1/2/2021 1/2/2022
A 1/2/2020 1/2/2021
A 1/2/2019 1/2/2020
B 1/2/2020 1/2/2021
B 1/2/2019 1/2/2020
C 1/2/2019 1/2/2020
C 1/2/2018 1/2/2019
假設 getdate() 是 1/10/2022 結果應該如下
ProductID FromDate Todate Active
A 1/2/2021 1/2/2022
B 1/2/2020 1/2/2021
C 1/2/2019 1/2/2020
uj5u.com熱心網友回復:
我相信你的意思是“我怎樣才能從這個表中回傳今天的日期、一年前或兩年前的日期在開始日期和結束日期之間的記錄?”
在這種情況下,你很接近,但這應該有效:
WITH dates
AS
(
SELECT DATEADD(Year,i,CAST(GETDATE() AS Date)) AS datecheck
FROM (VALUES (0),(-1),(-2)) t(i)
)
SELECT ProductID, FromDate, ToDate
FROM Mytable, dates
WHERE datecheck BETWEEN FromDate AND ToDate;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/425869.html
上一篇:將多個視圖合并為一個的SQL查詢
下一篇:在T-SQL中拆分列
