# name: test/sql/function/interval/test_extract.test # description: Extract function # group: [interval] statement ok CREATE TABLE intervals(i INTERVAL); statement ok INSERT INTO intervals VALUES ('2 years'), ('16 months'), ('42 days'), ('2066343400 microseconds'), (NULL); # extract various parts of the intervals query I SELECT EXTRACT(year FROM i) FROM intervals ---- 2 1 0 0 NULL query I SELECT EXTRACT(month FROM i) FROM intervals ---- 0 4 0 0 NULL query I SELECT EXTRACT(day FROM i) FROM intervals ---- 0 0 42 0 NULL query I SELECT EXTRACT(decade FROM i) FROM intervals ---- 0 0 0 0 NULL query I SELECT EXTRACT(century FROM i) FROM intervals ---- 0 0 0 0 NULL query I SELECT EXTRACT(millennium FROM i) FROM intervals ---- 0 0 0 0 NULL query I SELECT EXTRACT(quarter FROM i) FROM intervals ---- 1 2 1 1 NULL statement error SELECT EXTRACT(dayofweek FROM i) FROM intervals ---- statement error SELECT EXTRACT(isodow FROM i) FROM intervals ---- statement error SELECT EXTRACT(dayofyear FROM i) FROM intervals ---- statement error SELECT EXTRACT(week FROM i) FROM intervals ---- statement error SELECT EXTRACT(yearweek FROM i) FROM intervals ---- query I SELECT EXTRACT(epoch FROM i) FROM intervals ---- 63115200.0 41925600.0 3628800.0 2066.3434 NULL query I SELECT EXTRACT(microsecond FROM i) FROM intervals ---- 0 0 0 26343400 NULL query I SELECT EXTRACT(millisecond FROM i) FROM intervals ---- 0 0 0 26343 NULL query I SELECT EXTRACT(second FROM i) FROM intervals ---- 0 0 0 26 NULL query I SELECT EXTRACT(minute FROM i) FROM intervals ---- 0 0 0 34 NULL query I SELECT EXTRACT(hour FROM i) FROM intervals ---- 0 0 0 0 NULL # negative intervals with months are strange in Postgres query I SELECT EXTRACT(year FROM interval '14 months ago') ---- -1 query I SELECT EXTRACT(month FROM interval '14 months ago') ---- -2 query I SELECT EXTRACT(day FROM interval '157 days ago') ---- -157 query I SELECT EXTRACT(decade FROM interval '140 months ago') ---- -1 query I SELECT EXTRACT(century FROM interval '1400 months ago') ---- -1 query I SELECT EXTRACT(millennium FROM interval '14000 months ago') ---- -1 query I SELECT EXTRACT(quarter FROM interval '14 months ago') ---- 1 query I SELECT EXTRACT(quarter FROM interval '21 months ago') ---- -2 query I SELECT EXTRACT(epoch FROM interval '6 months ago') ---- -15552000 statement error SELECT EXTRACT(doy FROM interval '6 months ago') ---- statement error SELECT EXTRACT(dow FROM interval '6 months ago') ----