在SQL Server 2005/2008中获取星期几

如果我有一个日期01/01/2009,我想找出星期几,例如星期一,星期二等。

SQL Server 2005/2008中是否对此具有内置功能?还是我需要使用辅助表?


青春有我
浏览 429回答 3
3回答

哆啦的时光机

使用DATENAME或DATEPART:SELECT DATENAME(dw,GETDATE()) -- FridaySELECT DATEPART(dw,GETDATE()) -- 6

绝地无双

即使SQLMenace的答案已被接受,SET您也应该注意一个重要的选择设置日期如果一周的第一天已更改,则DATENAME将返回正确的日期名称,但返回的DATEPART值将不同,如下所示。declare @DefaultDateFirst intset @DefaultDateFirst = @@datefirst--; 7 First day of week is "Sunday" by defaultselect&nbsp; [@DefaultDateFirst] = @DefaultDateFirst&nbsp;set datefirst @DefaultDateFirstselect datename(dw,getdate()) -- Saturdayselect datepart(dw,getdate()) -- 7--; Set the first day of week to * TUESDAY *&nbsp;--; (some people start their week on Tuesdays...)set datefirst 2select datename(dw,getdate()) -- Saturday--; Returns 5 because Saturday is the 5th day since Tuesday.--; Tue 1, Wed 2, Th 3, Fri 4, Sat 5select datepart(dw,getdate()) -- 5 <-- It's not 7!set datefirst @DefaultDateFirst

幕布斯6054654

要获得给定日期的星期几的确定性值,可以结合使用DATEPART ()和@@ datefirst。否则,您将取决于服务器上的设置。请访问以下站点以获得更好的解决方案:MS SQL:星期几这样,星期几将在0到6之间,其中0是星期日,1是星期一,依此类推。然后,您可以使用简单的case语句返回正确的工作日名称。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server