为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

青春有我 2019-12-11 09:09:40
如果我有一个日期01/01/2009,我想找出星期几,例如星期一,星期二等。SQL Server 2005/2008中是否对此具有内置功能?还是我需要使用辅助表?
查看完整描述

3 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞


使用DATENAME或DATEPART:


SELECT DATENAME(dw,GETDATE()) -- Friday

SELECT DATEPART(dw,GETDATE()) -- 6


查看完整回答
反对 回复 2019-12-12
?
绝地无双

TA贡献1946条经验 获得超4个赞

即使SQLMenace的答案已被接受,SET您也应该注意一个重要的选择


设置日期


如果一周的第一天已更改,则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



查看完整回答
反对 回复 2019-12-12
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

要获得给定日期的星期几的确定性值,可以结合使用DATEPART ()和@@ datefirst。否则,您将取决于服务器上的设置。


请访问以下站点以获得更好的解决方案:MS SQL:星期几


这样,星期几将在0到6之间,其中0是星期日,1是星期一,依此类推。然后,您可以使用简单的case语句返回正确的工作日名称。



查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信