答案:不同数据库获取星期几的方法各异,MySQL用DAYOFWEEK或DATE_FORMAT,PostgreSQL用EXTRACT(DOW)或TO_CHAR,SQL Server用DATEPART或DATENAME,中文需CASE转换英文名。

在 SQL 中获取指定日期是星期几,可以使用数据库自带的日期函数。不同数据库的语法略有差异,以下是常见数据库的实现方式。
MySQL 提供了多个函数来获取星期信息:
SELECT
DAYOFWEEK('2025-04-05') AS day_of_week, -- 返回 7(星期六)
WEEKDAY('2025-04-05') AS weekday_num, -- 返回 5(星期六)
DATE_FORMAT('2025-04-05', '%W') AS weekday_name; -- 返回 Saturday
PostgreSQL 和 Oracle 支持用 EXTRACT() 提取星期,但需配合 dow(day of week):
SELECT EXTRACT(DOW FROM DATE '2025-04-05') AS day_of_week; -- 返回 6(星期六)
若要获取星期名称:
SELECT TO_CHAR(DATE '2025-04-05', 'Day') AS weekday_name; -- 返回 Saturday
SELECT DATEPART(WEEKDAY, '2025-04-05') AS day_number, -- 返回 7(星期六) DATENAME(WEEKDAY, '2025-04-05') AS day_name; -- 返回 Saturday
多数数据库不直接返回中文星期,可通过 CASE 语句转换:
SELECT
CASE DATE_FORMAT('2025-04-05', '%W')
WHEN 'Monday' THEN '星期一'
WHEN 'Tuesday' THEN '星期二'
WHEN 'Wednesday' THEN '星期三'
WHEN 'Thursday' THEN '星期四'
WHEN 'Friday' THEN '星期五'
WHEN 'Saturday' THEN '星期六'
WHEN 'Sunday' THEN '星期日'
END AS chinese_weekday;
基本上就这些方法,根据你使用的数据库选择对应函数即可。注意各数据库对“一周从哪天开始”的定义可能不同,必要时可调整设置。
以上就是SQL 日期函数如何获取指定日期的星期?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号