我有來自 Teradata SQL 的代碼行,如下所示:
WHERE CAST(COL1 AS DATE) BETWEEN TRUNC(ADD_MONTHS(CURRENT_DATE, -6),'MM') AND LAST_DAY(ADD_MONTHS(CURRENT_DATE,-1))
我的問題是如何修改上面的代碼行以便在 SQL Server 中也能作業?
uj5u.com熱心網友回復:
您可以使用EOMONTH獲取當月的最后一天 (DATE)。然后使用DATEADD添加 1 天,得到下個月的第一天。
然后從中減去幾個月。
select DATEADD(month, -7, DATEADD(day, 1, EOMONTH(GETDATE()))) as date1, DATEADD(month, -1, DATEADD(day, 1, EOMONTH(GETDATE()))) as date2
| 日期1 | 日期2 |
|---|---|
| 2021-07-01 | 2022-01-01 |
那么等價的WHERE子句是這樣的:
WHERE COL1 >= DATEADD(month, -7, DATEADD(day, 1, EOMONTH(GETDATE())))
AND COL1 < DATEADD(month, -1, DATEADD(day, 1, EOMONTH(GETDATE())))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/415826.html
標籤:
