亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取SQL Server中的第一天

獲取SQL Server中的第一天

守候你守候我 2019-08-02 16:36:38
獲取SQL Server中的第一天我試圖按周分組記錄,將匯總日期存儲為一周的第一天。但是,我用于舍入日期的標準技術似乎在幾周內沒有正常工作(盡管它確實存在了幾天,幾個月,幾年,幾個季度以及我應用它的任何其他時間范圍)。這是SQL:select "start_of_week" = dateadd(week, datediff(week, 0, getdate()), 0);返回2011-08-22 00:00:00.000,這是星期一,而不是星期日。選擇@@datefirst返回7,這是星期日的代碼,所以據我所知,服務器設置正確。通過將上面的代碼更改為:我可以輕松地繞過這個:select "start_of_week" = dateadd(week, datediff(week, 0, getdate()), -1);但事實上,我必須做出這樣的例外讓我有點不安。此外,如果這是一個重復的問題,請道歉。我發現了一些相關問題,但沒有一個專門解決這個問題。
查看完整描述

3 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

這對我很有用:

創造功能[dbo]。[StartOfWeek](
  @INPUTDATE DATETIME)退貨日期如開始
  - 這在功能上不起作用。
  -  SET DATEFIRST 1  - 將星期一設置為星期的第一天。
  DECLARE @DOW INT  - 存儲星期幾
  SET @INPUTDATE = CONVERT(VARCHAR(10),@ INPUTDATE,111)
  SET @DOW = DATEPART(DW,@ INPUTDATE)
  - 星期一的魔術轉換為1,星期二為2,等等。
  - 不管SQL服務器對本周開始的看法。
  - 但是在這里我們將星期日標記為0,但我們稍后會解決這個問題。
  SET @DOW =(@ DOW + @@ DATEFIRST  -  1)%7
  IF @DOW = 0 SET @DOW = 7  - 修復周日
  返回DATEADD(DD,1  -  @ DOW,@ INPUTDATE)結束


查看完整回答
反對 回復 2019-08-02
  • 3 回答
  • 0 關注
  • 614 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號