EXTRACT(field FROM source)
extract
函數從日期/時間數值里抽取子域,比如年、小時等。
source
必須是一個timestamp, time, interval
類型的值表達式(類型為date的表達式轉換為 timestamp,因此也可以用)。
field
是一個標識符或者字符串,它指定從源數據中抽取的域。
extract 函數返回類型為double precision的數值。
提取年份
SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 2001
提取月份
<!-- 對於timestamp值,它是一年里的月份數(1-12);對於interval值, 它是月的數目,然后對 12 取模(0-11) -->
SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 2
SELECT EXTRACT(MONTH FROM INTERVAL '2 years 3 months');
Result: 3
SELECT EXTRACT(MONTH FROM INTERVAL '2 years 13 months');
Result: 1
提取日期
<!-- 對於timestamp值,(月份)里的日期(1-31);對於interval,天數 -->
SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 16
SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');
Result: 40