我想請教一下如何在平日獲取日期如何在工作日獲取日期?
green is weekday
red is sunday
所以當我輸入的SQL命令它(如27)時2012年 它會顯示日期2012-07-2直到2012-07-08
我想請教一下如何在平日獲取日期如何在工作日獲取日期?
green is weekday
red is sunday
所以當我輸入的SQL命令它(如27)時2012年 它會顯示日期2012-07-2直到2012-07-08
此查詢使用單個參數@weekno
放置並返回該周的7天,週一爲每週的第一天。 WeekNo 的定義不是遵循SQL Server的DatePart(Week)
,因爲它取決於@@ Datefirst。這不是。
dateadd..
行是一個表達式,它返回一年中的第一個星期一。我從here得到它。它上面的行只是增加了幾周,0-6創建7天。要驗證這一點對於任何一年都是正確的,請在查詢中將CURRENT_TIMESTAMP
更改爲日期,如20180708
。僅供參考,2018年1月1日是星期一。
declare @weekno int = 27;
select
(@weekno-1)*7+v.num+
dateadd(dd,(datediff(dd,0,dateadd(yy,datediff(yy,0,CURRENT_TIMESTAMP),6))/7)*7,0)
from (values(0),(1),(2),(3),(4),(5),(6))v(num)
order by num
-- results
July, 02 2012 00:00:00+0000
July, 03 2012 00:00:00+0000
July, 04 2012 00:00:00+0000
July, 05 2012 00:00:00+0000
July, 06 2012 00:00:00+0000
July, 07 2012 00:00:00+0000
July, 08 2012 00:00:00+0000
是的,如果你不介意我可以問我要把@weekno放在哪裏。謝謝 –
借用說,查詢本身沒有'@ weekno'。 –
@Andriy我不應該在餓的時候打字並犯錯:) – RichardTheKiwi
是的。對於數據庫。我想每週計算生產日期 –
'對於數據庫'。 MySQL的? – RichardTheKiwi
是的,我必須輸入數據庫的星期範圍。 SQl服務器實際上。謝謝 –