如何在 SQL 中從日期提取日

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

要從指定的日期中提取月份中的日,您可以使用 EXTRACT() 函數。以下說明其語法

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

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

EXTRACT() 函數會返回一個數字,表示輸入日期的月份中的日。

以下範例展示如何從 2018 年 8 月 21 日的日期提取月份中的日

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() 函數是 MySQLOraclePostgreSQL 支援的 SQL 標準函數。

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 中的日期中提取月份中的日。

這個教學對您有幫助嗎?