SQL 日期函数如何获取指定日期的星期?

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

SQL 日期函数如何获取指定日期的星期?

在 SQL 中获取指定日期是星期几,可以使用数据库自带的日期函数。不同数据库的语法略有差异,以下是常见数据库的实现方式。

1. 使用 DAYOFWEEK() 或 WEEKDAY() 函数(MySQL)

MySQL 提供了多个函数来获取星期信息:

  • DAYOFWEEK(date):返回 1(星期日)到 7(星期六)
  • WEEKDAY(date):返回 0(星期一)到 6(星期天)
  • DATE_FORMAT(date, '%W'):返回英文星期名,如 'Monday'
  • DATE_FORMAT(date, '%w'):返回 0(星期日)到 6(星期六)

示例:

 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 

2. 使用 EXTRACT() 函数(PostgreSQL、Oracle、SQLite 等)

PostgreSQL 和 Oracle 支持用 EXTRACT() 提取星期,但需配合 dow(day of week):

SQL 日期函数如何获取指定日期的星期?

即构数智人

即构数智人是由即构科技推出的ai虚拟数字人视频创作平台,支持数字人形象定制、短视频创作、数字人直播等。

SQL 日期函数如何获取指定日期的星期?36

查看详情 SQL 日期函数如何获取指定日期的星期?

  • 返回 0(星期日)到 6(星期六)

示例(PostgreSQL):

 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 

3. 使用 DATENAME() 和 DATEPART()(SQL Server)

  • DATENAME(WEEKDAY, date):返回星期名称
  • DATEPART(WEEKDAY, date):返回数字(默认 1=星期日,7=星期六)

示例:

 SELECT    DATEPART(WEEKDAY, '2025-04-05') AS day_number,     -- 返回 7(星期六)   DATENAME(WEEKDAY, '2025-04-05') AS day_name;       -- 返回 Saturday 

4. 获取中文星期(通用思路)

多数数据库不直接返回中文星期,可通过 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; 

基本上就这些方法,根据你使用的数据库选择对应函数即可。注意各数据库对“一周从哪天开始”的定义可能不同,必要时可调整设置。

mysql oracle 2025 sql mysql date sqlite oracle postgresql 数据库

    当前页面评论已关闭。

    text=ZqhQzanResources