本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
DATE_PART 函數
DATE_PART 會從運算式擷取日期部分值。DATE_PART 是 PGDATE_PART 函數的同義詞。
語法
DATE_PART(datepart, {date|timestamp})
引數
- datepart
-
函數所操作的日期值的特定部分 (例如年、月或日) 的識別碼常值或字串。如需詳細資訊,請參閱 日期或時間戳記函數的日期部分。
- {date|timestamp}
-
日期欄、時間戳記欄,或會隱性轉換為日期或時間戳記的運算式。Date 或 timestamp 中的欄或運算式必須包含 datepart 中指定的日期部分。
傳回類型
DOUBLE
範例
DATE_PART 函數的預設欄名稱為 pgdate_part
。
下列範例會從時間戳記常值尋找分鐘。
SELECT DATE_PART(minute, timestamp '20230104 04:05:06.789');
pgdate_part ----------- 5
下列範例會從時間戳記常值中尋找週數。週數計算遵循 ISO 8601 標準。如需詳細資訊,請參閱 Wikipedia 中的 ISO 8601
SELECT DATE_PART(week, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 18
下列範例會從時間戳記常值尋找月份中的日期。
SELECT DATE_PART(day, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 2
下列範例會從時間戳記常值尋找星期幾。週數計算遵循 ISO 8601 標準。如需詳細資訊,請參閱 Wikipedia 中的 ISO 8601
SELECT DATE_PART(dayofweek, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 1
下列範例會從時間戳記常值中尋找世紀。世紀計算遵循 ISO 8601 標準。如需詳細資訊,請參閱 Wikipedia 中的 ISO 8601
SELECT DATE_PART(century, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 21
下列範例會從時間戳記常值中尋找千年。千年計算遵循 ISO 8601 標準。如需詳細資訊,請參閱 Wikipedia 中的 ISO 8601
SELECT DATE_PART(millennium, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 3
下列範例會從時間戳記常值中尋找微秒。微秒計算遵循 ISO 8601 標準。如需詳細資訊,請參閱 Wikipedia 中的 ISO 8601
SELECT DATE_PART(microsecond, timestamp '20220502 04:05:06.789');
pgdate_part ----------- 789000
下列範例會從日期常值中尋找月份。
SELECT DATE_PART(month, date '20220502');
pgdate_part ----------- 5
下列範例會將 DATE_PART 函數套用至資料表中的欄。
SELECT date_part(w, listtime) AS weeks, listtime FROM listing WHERE listid=10
weeks | listtime ------+--------------------- 25 | 2008-06-17 09:44:54 (1 row)
您可以將日期部分以全名或縮寫表示,在此情況下,w 代表週。
週日期部分的天會傳回從 0–6 的整數,從星期日開始。使用 DATE_PART 含小數點 (DAYOFWEEK),來檢視星期六的事件。
SELECT date_part(dow, starttime) AS dow, starttime FROM event WHERE date_part(dow, starttime)=6 ORDER BY 2,1;
dow | starttime -----+--------------------- 6 | 2008-01-05 14:00:00 6 | 2008-01-05 14:00:00 6 | 2008-01-05 14:00:00 6 | 2008-01-05 14:00:00 ... (1147 rows)