3 回答

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用DATENAME或DATEPART:
SELECT DATENAME(dw,GETDATE()) -- Friday
SELECT DATEPART(dw,GETDATE()) -- 6

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
即使SQLMenace的答案已被接受,SET您也應(yīng)該注意一個(gè)重要的選擇
設(shè)置日期
如果一周的第一天已更改,則DATENAME將返回正確的日期名稱,但返回的DATEPART值將不同,如下所示。
declare @DefaultDateFirst int
set @DefaultDateFirst = @@datefirst
--; 7 First day of week is "Sunday" by default
select [@DefaultDateFirst] = @DefaultDateFirst
set datefirst @DefaultDateFirst
select datename(dw,getdate()) -- Saturday
select datepart(dw,getdate()) -- 7
--; Set the first day of week to * TUESDAY *
--; (some people start their week on Tuesdays...)
set datefirst 2
select datename(dw,getdate()) -- Saturday
--; Returns 5 because Saturday is the 5th day since Tuesday.
--; Tue 1, Wed 2, Th 3, Fri 4, Sat 5
select datepart(dw,getdate()) -- 5 <-- It's not 7!
set datefirst @DefaultDateFirst

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
要獲得給定日期的星期幾的確定性值,可以結(jié)合使用DATEPART ()和@@ datefirst。否則,您將取決于服務(wù)器上的設(shè)置。
請(qǐng)?jiān)L問(wèn)以下站點(diǎn)以獲得更好的解決方案:MS SQL:星期幾
這樣,星期幾將在0到6之間,其中0是星期日,1是星期一,依此類推。然后,您可以使用簡(jiǎn)單的case語(yǔ)句返回正確的工作日名稱。
- 3 回答
- 0 關(guān)注
- 519 瀏覽
添加回答
舉報(bào)