如何在 SQL 中从日期提取日

摘要:在本教程中,你将学习如何在 SQL 中从日期提取月中天数。

要从指定日期提取月中天数,你需要使用 EXTRACT() 函数。语法如下所示

EXTRACT(DAY FROM date)
Code language: SQL (Structured Query Language) (sql)

在此语法中,你将想要从中提取月中天数的日期传递给 EXTRACT() 函数。日期可以是任何有效日期文字或计算为日期值的表达式。

EXTRACT() 函数返回一个数字,表示输入日期月中天数。

以下示例说明如何从 8 月 21 日 2018 年 的日期中提取月中天数

SELECT EXTRACT(MONTH FROM '2018-08-21')
Code language: SQL (Structured Query Language) (sql)

该语句发出了以下输出

21
Code language: SQL (Structured Query Language) (sql)

若要获得当前日期的日期,请在 EXTRACT() 函数中使用 CURRENT_TIMESTAMP 函数,如下所示

SELECT EXTRACT(DAY FROM CURRENT_TIMESTAMP)
Code language: SQL (Structured Query Language) (sql)

请注意,EXTRACT() 函数是一个 SQL 标准函数,受 MySQLOraclePostgreSQL 支持。

SQL Server 不支持 EXTRACT() 函数。如果你使用 SQL Server,你可以改用 DAY()DATEPART() 函数来从日期提取月中天数。

例如,以下两个语句都返回 SQL Server 中当前日期的日期

SELECT DAY(CURRENT_TIMESTAMP);

SELECT DATEPART(DAY, CURRENT_TIMESTAMP);
Code language: SQL (Structured Query Language) (sql)

除了提供 EXTRACT() 函数外,MySQL 还支持 DAY() 函数,用于从日期返回月中天数。

SQLite 不支持 EXTRACT()DAY()DATEPART() 函数。要从日期中提取月份,你可以按照如下所示使用 strftime() 函数

SELECT strftime('%d', CURRENT_TIMESTAMP)
Code language: SQL (Structured Query Language) (sql)

在本教程中,你已学习如何使用各种函数来从 SQL 中的日期提取月中天数。

本教程是否对你有帮助?