Coursera 笔记

Module 03 · Intermediate SQL

Date and Time Built-in Functions SQL日期和时间函数

Coursera ↗

您好,欢迎来到 SQL 日期和时间函数 课程。

学习目标

完成本课程后,您将能够:

  • 定义日期和时间函数。
  • 讨论日期或时间运算。

一、SQL 中的日期和时间数据类型

大多数数据库都包含用于日期和时间的特殊数据类型。在 SQL 中,常见的类型包括:DATE、TIME 和 TIMESTAMP。

类型 长度 格式说明 示例格式
DATE 8 位数字 YYYYMMDD (年、月、日) 20251204
TIME 6 位数字 HHMMSS (时、分、秒) 033856
TIMESTAMP 20 位数字 YYYYXXDDHHMMSSZZZZZZ 年(4位) + 月(XX, 2位) + 日(2位) + 时(2位) + 分(2位) + 秒(2位) + 微秒(ZZZZZZ, 6位)

📌 注意: 在 TIMESTAMP 格式中,XX 代表月份,ZZZZZZ 代表微秒。

提取函数

存在用于从日期和时间值中提取特定部分的功能函数,例如:

  • 日期部分: DAY(日)、MONTH(月)、DAYOFMONTH(月的某天)、DAYOFWEEK(周几)、DAYOFYEAR(一年的第几天)、WEEK(周)。
  • 时间部分: HOUR(小时)、MINUTE(分钟)、SECOND(秒)。

日期和时间函数查询示例

  1. 使用 DAY 提取日部分:
    例如,获取涉及“猫”(cat)的每次救援的日部分:
    SQL
SELECT DAY(RESCUE_DATE) FROM PETRESCUE WHERE ANIMAL = 'cat';

  1. 在 WHERE 子句中使用函数:
    日期和时间函数也可以用于 WHERE 子句中。
    例如,获取五月(即月份 5)期间的销售总数:
    SQL
SELECT COUNT(*) FROM PETRESCUE WHERE MONTH(RESCUE_DATE) = 5;


二、日期或时间运算

SQL 支持对日期和时间值执行算术运算。

运算目的 示例 SQL 语句 结果
日期加法 SELECT DATE_ADD(RESCUE_DATE, INTERVAL 3 DAY) FROM PETRESCUE; 计算每个救援日期之后的第三天的日期。(可能用于订单需在三天内处理等场景。)
日期减法 SELECT CURRENT_DATE - RESCUE_DATE FROM PETRESCUE; 计算从每个救援日期到当前日期(CURRENT_DATE 寄存器)之间经过了多少天。

特殊寄存器 (Special Registers)

  • CURRENT_TIME: 返回当前的时间。
  • CURRENT_DATE: 返回当前的日期。

日期减法结果: CURRENT_DATE - RESCUE_DATE 的结果将以年、月、日的形式返回。


总结

  • SQL 包含 DATE、TIME 和 TIMESTAMP 数据类型。
    • DATE 有 8 位数字(YYYYMMDD)。
    • TIME 有 6 位数字(HHMMSS)。
    • TIMESTAMP 有 20 位数字(YYYYXXDDHHMMSSZZZZZZ),其中 XX 是月份,ZZZZZZ 是微秒。
  • 存在用于提取日期和时间部分(如 DAY、MONTH、HOUR、MINUTE、SECOND 等)的函数。
  • 日期和时间函数可以用于 WHERE** 子句**中。
  • DAY 函数可用于提取日期的日部分。