blob: bf34e94dae662bb7bd2ab3c4de7d9c9a80eace30 [file] [log] [blame]
# name: test/sql/function/interval/test_extract.test
# description: Extract function
# group: [interval]
# YEAR-MONTH intervals
statement ok
CREATE TABLE intervals_ym(i INTERVAL YEAR TO MONTH)
statement ok
INSERT INTO intervals_ym VALUES (INTERVAL 1234 YEARS), (INTERVAL 2 YEARS), (INTERVAL 16 MONTHS), (INTERVAL '1-2' YEAR TO MONTH), (NULL)
# extract various parts of the intervals
query I
SELECT EXTRACT(year FROM i) FROM intervals_ym ORDER BY i DESC
----
1234
2
1
1
NULL
query I
SELECT EXTRACT(month FROM i) FROM intervals_ym ORDER BY i DESC
----
0
0
4
2
NULL
query I
SELECT EXTRACT(decade FROM i) FROM intervals_ym ORDER BY i DESC
----
123
0
0
0
NULL
query I
SELECT EXTRACT(century FROM i) FROM intervals_ym ORDER BY i DESC
----
12
0
0
0
NULL
query I
SELECT EXTRACT(millennium FROM i) FROM intervals_ym ORDER BY i DESC
----
1
0
0
0
NULL
query I
SELECT EXTRACT(quarter FROM i) FROM intervals_ym ORDER BY i DESC
----
1
1
2
1
NULL
statement error
SELECT EXTRACT(day FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(dayofweek FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(isodow FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(dayofyear FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(week FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(day FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(hour FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(minute FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(second FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(millisecond FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(microsecond FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(nanosecond FROM i) FROM intervals_ym
statement error
SELECT EXTRACT(epoch FROM i) FROM intervals_ym
# DAY-TIME intervals
statement ok
CREATE TABLE intervals_dt(i INTERVAL DAY TO SECOND)
statement ok
INSERT INTO intervals_dt VALUES (INTERVAL 42 DAYS), (INTERVAL '10:20' HOUR TO MINUTE), (INTERVAL '2066.343' SECONDS(4)), (NULL)
statement error
SELECT EXTRACT(month FROM i) FROM intervals_dt
statement error
SELECT EXTRACT(quarter FROM i) FROM intervals_dt
statement error
SELECT EXTRACT(year FROM i) FROM intervals_dt
statement error
SELECT EXTRACT(decade FROM i) FROM intervals_dt
statement error
SELECT EXTRACT(century FROM i) FROM intervals_dt
statement error
SELECT EXTRACT(millennium FROM i) FROM intervals_dt
statement error
SELECT EXTRACT(dayofweek FROM i) FROM intervals_dt
statement error
SELECT EXTRACT(isodow FROM i) FROM intervals_dt
statement error
SELECT EXTRACT(dayofyear FROM i) FROM intervals_dt
statement error
SELECT EXTRACT(week FROM i) FROM intervals_dt
statement error
SELECT EXTRACT(epoch FROM i) FROM intervals_dt
query I
SELECT EXTRACT(microsecond FROM i) FROM intervals_dt ORDER BY i DESC
----
0
0
26343000
NULL
query I
SELECT EXTRACT(millisecond FROM i) FROM intervals_dt ORDER BY i DESC
----
0
0
26343
NULL
query I
SELECT EXTRACT(second FROM i) FROM intervals_dt ORDER BY i DESC
----
0
0
26
NULL
query I
SELECT EXTRACT(minute FROM i) FROM intervals_dt ORDER BY i DESC
----
0
20
34
NULL
query I
SELECT EXTRACT(hour FROM i) FROM intervals_dt ORDER BY i DESC
----
0
10
0
NULL
query I
SELECT EXTRACT(day FROM i) FROM intervals_dt ORDER BY i DESC
----
42
0
0
NULL
# negative intervals
query I
SELECT EXTRACT(year FROM interval '-14' months)
----
-1
query I
SELECT EXTRACT(month FROM interval '-14' months)
----
-2
query I
SELECT EXTRACT(day FROM interval '-157' days(3))
----
-157
query I
SELECT EXTRACT(decade FROM interval '-140' months(3))
----
-1
query I
SELECT EXTRACT(century FROM interval '-1400' months(4))
----
-1
query I
SELECT EXTRACT(millennium FROM interval '-14000' months(5))
----
-1
query I
SELECT EXTRACT(quarter FROM interval '-14' months)
----
4
query I
SELECT EXTRACT(quarter FROM interval '-21' months)
----
1