You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何根据日期列判断对应星期几

如何通过SQL日期列判断对应星期几?

当然可行啦!针对你创建的临时测试表,我们可以用SQL Server自带的日期函数轻松实现提取星期几的需求,下面给你具体的实现方法:

方法一:更新已有数据的Day列

你已经创建了包含IncidentDate和Day列的临时表,并且插入了日期数据,现在可以用DATENAME()函数直接更新Day列,获取星期的全称:

UPDATE #Date
SET [Day] = DATENAME(WEEKDAY, IncidentDate)

DATENAME(WEEKDAY, 日期列)会根据服务器的语言设置返回对应的星期名称,比如服务器是中文环境会返回“星期四”,英文环境则返回“Thursday”。

方法二:插入数据时直接计算星期几

如果不想先插入日期再更新,也可以在插入数据的同时直接计算并填充Day列:

INSERT INTO #Date (IncidentDate, [Day])
VALUES 
('20170803', DATENAME(WEEKDAY, '20170803')),
('20170817', DATENAME(WEEKDAY, '20170817')),
('20170831', DATENAME(WEEKDAY, '20170831')),
-- 其他日期依此类推

方法三:自定义星期名称(不受服务器语言影响)

如果想要固定返回特定语言的星期名称,比如不管服务器设置如何都返回中文星期,可以用CASE语句配合DATEPART()函数实现:

UPDATE #Date
SET [Day] = CASE DATEPART(WEEKDAY, IncidentDate)
    WHEN 1 THEN '星期日'
    WHEN 2 THEN '星期一'
    WHEN 3 THEN '星期二'
    WHEN 4 THEN '星期三'
    WHEN 5 THEN '星期四'
    WHEN 6 THEN '星期五'
    WHEN 7 THEN '星期六'
END

这里要注意:DATEPART(WEEKDAY, 日期)返回的数字范围是1-7,默认情况下,英文环境中1代表星期日,中文环境中1代表星期一。如果需要统一规则,可以先执行SET LANGUAGE Simplified Chinese;来确保数字对应的星期符合中文习惯。

内容的提问来源于stack exchange,提问作者JM1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:32:50