我有每天的資料,格式是這樣的'2020-01-01'。我如何在資料庫中準確定位每個季度的上個月的第一天?
以下是目前所掌握的情況:
Where?
d3.[day_date] > DATEADD(dd, -1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()>, 0)
and d3.[day_date] < DATEADD(qq, DATEDIFF(qq, 0, GETDATE() 1, 0)
非常感謝您的時間和幫助。
uj5u.com熱心網友回復:
你可以稍微修改一下你的查詢,以獲得最后一個月的季度的第一天,如下所示:
SELECT DATEADD(mm,-1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE() -1, 0) --上個月前兩個季度。
SELECT DATEADD(mm,-1,DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0 ) ) --上一季度上個月。
SELECT DATEADD(mm,-1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE() 1, 0) --當前季度上個月。
SELECT DATEADD(mm,-1,DATEADD(qq, DATEDIFF(qq, 0, GETDATE() 2, 0) --下一季度最后一個月。
20210301 00: 00: 00. 000:00:00.
2021-06-01 00:00:00.
2021-09-01 00:00:00.0002021-12-01 00:00:00.000
uj5u.com熱心網友回復:
你可以使用datefromparts():
select datefromparts(year(day_date) 。
ceiling(month(day_date) / 3.0) * 3,
1)
如果你想對你表中的每一個日期都這樣做,你可以使用:
select distinct datefromparts(year(day_date) 。
ceiling(month(day_date) / 3.0) * 3,
1) as yyyyqq
from t。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/328402.html
標籤:
