簡體   English   中英

SQL 服務器我們如何編寫 sql function 返回 getdate() 在 FromDate 和 Todate 之間的記錄

[英]SQL Server How can we write a sql function which returns the records where getdate() is between FromDate and Todate

我們如何編寫一個 sql function 來返回 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

我相信你的意思是“我怎樣才能從這個表中返回今天的日期、一年前或兩年前的日期在開始日期和結束日期之間的記錄?”

在這種情況下,你很接近,但這應該有效:

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM