Changeset: f8a420e8f78a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f8a420e8f78a
Added Files:
        sql/test/FeatureRequests/Tests/enhanced_date_operators.sql
Branch: datetrunc
Log Message:

Postgresql supports more date/time functions and operators.
We should at least include the arithmetic


diffs (90 lines):

diff --git a/sql/test/FeatureRequests/Tests/enhanced_date_operators.sql 
b/sql/test/FeatureRequests/Tests/enhanced_date_operators.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/FeatureRequests/Tests/enhanced_date_operators.sql
@@ -0,0 +1,85 @@
+-- Postgresl 11 date functions from 9.9.1
+
+select date '2001-09-28' + integer '7';
+-- date '2001-10-05'
+
+select date '2001-09-28' + interval '1 hour';
+-- timestamp '2001-09-28 01:00:00'
+
+select date '2001-09-28' + time '03:00';
+-- timestamp '2001-09-28 03:00:00'
+
+select interval '1 day' + interval '1 hour';
+-- interval '1 day 01:00:00'
+
+select timestamp '2001-09-28 01:00' + interval '23 hours';
+-- timestamp '2001-09-29 00:00:00'
+
+select time '01:00' + interval '3 hours';
+--     time '04:00:00'
+
+select         - interval '23 hours';
+--interval '-23:00:00'
+
+select         date '2001-10-01' - date '2001-09-28';
+-- integer '3' (days)
+
+select date '2001-10-01' - integer '7';
+--     date '2001-09-24'
+
+select         date '2001-09-28' - interval '1 hour';
+--timestamp '2001-09-27 23:00:00'
+
+select         time '05:00' - time '03:00';
+--     interval '02:00:00'
+
+select time '05:00' - interval '2 hours';
+--time '03:00:00'
+
+select timestamp '2001-09-28 23:00' - interval '23 hours';
+-- timestamp '2001-09-28 00:00:00'
+
+select interval '1 day' - interval '1 hour';
+--     interval '1 day -01:00:00'
+
+select timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00';
+--interval '1 day 15:00:00'
+
+select 900 * interval '1 second';
+--interval '00:15:00'
+
+select         21 * interval '1 day';
+-- interval '21 days'
+
+select double precision '3.5' * interval '1 hour';
+--     interval '03:30:00'
+
+select interval '1 hour' / double precision '1.5';
+-- interval '00:40:00'
+
+select isfinite(date '2001-02-16');
+select isfinite(timestamp '2001-02-16 21:28:30');
+select         isfinite(interval '4 hours');
+
+select justify_days(interval '35 days');
+-- 1 mon 5 days
+
+select justify_hours(interval '27 hours');
+-- 1 day 03:00:00
+
+select justify_interval(interval '1 mon -1 hour');
+-- 29 days 23:00:00
+
+select statement_timestamp();
+select timeofday();
+
+-- date_part(text, timestamp)
+-- date_part(text, interval)
+select transaction_timestamp();
+
+
+select make_date(2013, 7, 15);
+select make_time(8, 15, 23.5);
+select make_timestamp(2013, 7, 15, 8, 15, 23.5);
+select make_timestamptz(2013, 7, 15, 8, 15, 23.5);
+select make_interval(days => 10);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to