我有一個具有以下值的表(為簡潔而減少)
| 時期 | 期間從 | 周期 | Glperiodoracle | Glperiodcalendar |
|---|---|---|---|---|
| 88 | 2022-01-01 00:00:00 | 2022-01-28 00:00:00 | 2022 財年 1 月 | 2022 年 1 月 |
| 89 | 2022-01-29 00:00:00 | 2022-02-25 00:00:00 | 2022 財年 2 月至 2022 財年 | 2022 年 2 月 |
| 90 | 2022-02-26 00:00:00 | 2022-04-01 00:00:00 | 2022 財年 3 月 | 2022 年 3 月 |
| 91 | 2022-04-02 00:00:00 | 2022-04-29 00:00:00 | 2022 財年 4 月 | 2022 年 4 月 |
| 92 | 2022-04-30 00:00:00 | 2022-05-27 00:00:00 | 2022 年 5 月至 2022 財年 | 2022 年 5 月 |
| 93 | 2022-05-28 00:00:00 | 2022-07-01 00:00:00 | 2022 財年 6 月 | 2022 年 6 月 |
| 94 | 2022-07-02 00:00:00 | 2022-07-29 00:00:00 | 2022 財年 7 月 | 2022 年 7 月 |
| 95 | 2022-07-30 00:00:00 | 2022-08-26 00:00:00 | 2022 財年 8 月 | 2022 年 8 月 |
| 96 | 2022-08-27 00:00:00 | 2022-09-30 00:00:00 | SEP-FY2022 | 2022 年 9 月 |
| 97 | 2022-10-01 00:00:00 | 2022-10-28 00:00:00 | 2023 財年 10 月 | 2022 年 10 月 |
我想創建一個存盤程序,在執行時(不接收引數)將根據執行日期回傳與 PeriodFrom 和 PeriodTo 之間的日期相對應的單行。
我有這樣的事情:
Select top 1 Period,
Periodfrom,
Periodto,
Glperiodoracle,
Glperiodcalendar
From Calendar_Period
Where Periodfrom <= getdate()
And Periodto >= getdate()
我知道使用BETWEEN可能會導致錯誤,但是考慮到秒數,這在邊緣情況下是否可行,對嗎?
uj5u.com熱心網友回復:
看起來 (i) 您的結束日期包括在內 (ii) 時間部分始終為 00:00。所以正確和最高效的查詢是:
where cast(getdate() as date) between Periodfrom and Periodto
例如,它將在當前時間為 時回傳第一行2022-01-28 23:59:59.999。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/492706.html
下一篇:許多表通過回圈功能聯合
