extract()函數用於從一個date或者interval類型中截取到特定的部分
以下為oracle的用法,oracle 不支持提取周幾,但是在postgresql中可以使用extract(dow from now()) 來提取周幾
extract (
{ year | month | day | hour | minute | second } | { timezone_hour | timezone_minute } | { timezone_region | timezone_abbr } from { date_value | interval_value } )
只可以從一個date類型中截取年月日
只可以從一個date類型中截取年月日
從timestamp中獲取年月日時分秒
獲取兩個日期之間的具體時間間隔
獲取兩個日期之間的具體時間間隔,extract函數是最好的選擇
獲取interval類型特定部分
interval '{ integer | integer time_expr | time_expr }' { { day | hour | minute } [ ( leading_precision ) ] | second [ ( leading_precision [, fractional_seconds_precision ] ) ] } [ to { day | hour | minute | second [ (fractional_seconds_precision) ] } ]
范圍值:
hour: 0 to 23
minute: 0 to 59
second: 0 to 59.999999999
eg:
interval '4 5:12:10.222' day to second(3) 表示: 4天5小時12分10.222秒
interval '4 5:12' day to minute 表示: 4天5小時12分
interval '400 5' day(3) to hour 表示: 400天5小時, 400為3為精度,所以"day(3)", 注意默認值為2.
interval '400' day(3) 表示: 400天
interval '11:12:10.2222222' hour to second(7) 表示: 11小時12分10.2222222秒
interval '11:20' hour to minute 表示: 11小時20分
interval '10' hour 表示: 10小時
interval '10:22' minute to second 表示: 10分22秒
interval '10' minute 表示: 10分
interval '4' day 表示: 4天
interval '25' hour 表示: 25小時
interval '40' minute 表示: 40分
interval '120' hour(3) 表示: 120小時
interval '30.12345' second(2,4) 表示: 30.1235秒, 因為該地方秒的后面精度設置為4, 要進行四舍五入.
interval '20' day - interval '240' hour = interval '10-0' day to second 表示: 20天 - 240小時 = 10天0秒