如何在 SQL 中從日期提取月份

摘要:在本教學中,您將學習如何使用一些日期函數從 SQL 中的日期提取月份。

要從特定日期提取月份,您可以使用 EXTRACT() 函數。以下顯示語法:

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

在這個語法中,您將要提取月份的日期傳遞給 EXTRACT() 函數。日期可以是日期字面值或評估為日期值的表達式。

EXTRACT() 函數會傳回一個數字,表示日期的月份。

以下範例說明如何從 2018 年 8 月 1 日 的日期提取月份:

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

結果如我們預期的為 8。

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

若要取得當前月份,您可以使用 CURRENT_TIMESTAMP 函數,並將其傳遞給 EXTRACT() 函數,如下所示:

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

EXTRACT() 函數是一個 SQL 標準函數,受到 MySQLOraclePostgreSQL 的支援。

如果您使用 SQL Server,您可以使用 MONTH()DATEPART() 函數從日期提取月份。

例如,以下陳述式會在 SQL Server 中傳回當前月份:

SELECT MONTH(CURRENT_TIMESTAMP);

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

與 SQL Server 類似,MySQL 也支援 MONTH() 函數,以從日期傳回月份。

SQLite 不支援 EXTRACT()MONTH()DATEPART() 函數。若要從日期提取月份,您可以使用 strftime() 函數,如下所示:

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

在本教學中,您已學習如何使用各種函數從 SQL 中的日期提取月份。

這個教學對您有幫助嗎?