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

如何使用MySQL的WEEKDAY函数自动为新列填充星期几

MySQL批量填充星期几列解决方案

核心方案:利用WEEKDAY()函数结合字符串映射批量更新

MySQL的WEEKDAY()函数返回日期对应的数字索引:0=周一,1=周二,2=周三,3=周四,4=周五,5=周六,6=周日。你可以通过两种方式将数字转换为中文星期名称:

方法1:ELT()函数(简洁写法)

ELT()函数会根据索引返回对应位置的字符串,刚好匹配WEEKDAY()+1的索引(ELT从1开始计数):

-- 替换your_table为你的表名,date_column为你的日期列名
UPDATE `your_table`
SET `day` = ELT(WEEKDAY(`date_column`) + 1, '周一', '周二', '周三', '周四', '周五', '周六', '周日');

方法2:CASE WHEN语句(直观易懂,适合新手)

如果觉得ELT()不好理解,用CASE WHEN逐个映射逻辑更清晰:

UPDATE `your_table`
SET `day` = CASE WEEKDAY(`date_column`)
    WHEN 0 THEN '周一'
    WHEN 1 THEN '周二'
    WHEN 2 THEN '周三'
    WHEN 3 THEN '周四'
    WHEN 4 THEN '周五'
    WHEN 5 THEN '周六'
    WHEN 6 THEN '周日'
END;

关键注意事项

  1. 先验证再更新:批量操作前建议先执行SELECT语句验证结果,避免出错:
SELECT `date_column`, WEEKDAY(`date_column`), ELT(WEEKDAY(`date_column`)+1, '周一', '周二', '周三', '周四', '周五', '周六', '周日') AS 验证星期
FROM `your_table`
LIMIT 10;
  1. 关键字转义:如果表名、列名是MySQL关键字(比如day),必须用反引号`包裹,防止语法报错。

内容的提问来源于stack exchange,提问作者Tereza Pávková

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:20:39