SQL 日期函数如何提取年份、月份?

答案:SQL中提取年份和月份需根据数据库类型选择函数。PostgreSQL、Oracle等使用EXTRACT(YEAR FROM date)和EXTRACT(MONTH FROM date);MySQL支持YEAR(date)和MONTH(date);SQL Server则用DATEPART(YEAR, date)和DATEPART(MONTH, date),字段需为DATE或DATETIME类型。

在 SQL 中提取年份和月份,常用的是 EXTRACT 函数或特定数据库提供的日期函数。不同数据库语法略有差异,但功能相似。

使用 EXTRACT 函数(适用于 PostgreSQL、MySQL、Oracle 等)

EXTRACT 可以从日期或时间戳中提取年、月、日等部分。

  • 提取年份:
    EXTRACT(YEAR FROM 日期字段)
  • 提取月份:
    EXTRACT(MONTH FROM 日期字段)

示例:

SELECT EXTRACT(YEAR FROM order_date) AS 年份, EXTRACT(MONTH FROM order_date) AS 月份 FROM orders;

MySQL 中的 YEAR() 和 MONTH() 函数

MySQL 提供了更简洁的函数:

  • YEAR(日期字段):返回四位数年份
  • MONTH(日期字段):返回 1-12 的月份数字

示例:

SELECT YEAR(order_date) AS 年份, MONTH(order_date) AS 月份 FROM orders;

SQL Server 使用 DATEPART

SQL Server 不支持 EXTRACT,而是用 DATEPART

SELECT DATEPART(YEAR, order_date) AS 年份, DATEPART(MONTH, order_date) AS 月份 FROM orders;

基本上就这些。根据你使用的数据库选择对应函数即可,功能都一样,只是写法不同。注意字段类型应为 DATE 或 DATETIME 类型才能正确提取。