should be it
This commit is contained in:
201
external/duckdb/test/sql/function/interval/test_extract.test
vendored
Normal file
201
external/duckdb/test/sql/function/interval/test_extract.test
vendored
Normal file
@@ -0,0 +1,201 @@
|
||||
# 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')
|
||||
----
|
||||
Reference in New Issue
Block a user