30
loading...
This website collects cookies to deliver better user experience
SELECT CAST('2021-12-16' AS timestamp) - CAST('2021-12-11' AS timestamp) as interval;
interval
---------------
5 days
SELECT INTERVAL '1 day' as i1,
INTERVAL '2 days 2 hours' as i2,
INTERVAL '1D 2H' as i3;
i1 | i2 | i3
------------+-----------------+----------------
1 day | 2 days 02:00:00 | 1 day 02:00:00
SELECT INTERVAL '1-2',
INTERVAL '1-2' YEAR TO MONTH;
interval | interval
--------------------+---------------
1 year 2 mons | 1 year 2 mons
interval '<quantity> <unit>'
format, and it is easier to read and understand.SELECT CURRENT_TIMESTAMP;
current_timestamp
------------------------------------
2021-11-12 13:02:56.338088+07
SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP(0);
current_timestamp | current_timestamp
------------------------------------+------------------------
2021-11-12 13:26:25.138509+07 | 2021-11-12 13:26:25+07
SELECT CURRENT_DATE;
current_date
-------------------
2021-11-12
SELECT CURRENT_TIME;
current_time
-------------------------
13:00:30.898362+07
SELECT CURRENT_TIME, CURRENT_TIME(0);
current_time | current_time
-------------------------+--------------
13:31:13.307465+07 | 13:31:13+07
SELECT NOW();
now
------------------------------------
2021-11-12 13:03:04.731898+07
SELECT NOW(), CURRENT_TIMESTAMP;
now | current_timestamp
-----------------+-------------------------------
2021-11-12 13:07:29.248457+07 | 2021-11-12 13:07:29.248457+07
SELECT TIMESTAMP '2021-11-16 15:00' AS time_no_tz,
TIMESTAMP '2021-11-16 15:00' AT TIME ZONE 'America/Montreal' AS local_time;
time_no_tz | local_time
-------------------+------------------------
2021-11-16 15:00:00 | 2021-11-17 03:00:00+07
SELECT CURRENT_TIMESTAMP AS time_with_tz,
CURRENT_TIMESTAMP AT TIME ZONE 'America/Montreal' AS in_montreal_no_tz;
time_with_tz | in_montreal_no_tz
------------------------------------+----------------------------
2021-11-16 15:32:03.210247+07 | 2021-11-16 03:32:03.210247
AGE(timestamp1, timestamp2)
SELECT AGE(timestamp '2021-11-12 00:00:00', timestamp '2020-09-09 12:00:00');
age
------------------------------------
1 year 2 mons 2 days 12:00:00
SELECT AGE(timestamp '2009-09-12 10:11:00');
age
--------------------------------------
12 years 1 mon 29 days 13:49:00
SELECT
EXTRACT(year FROM invoice_date) AS year,
EXTRACT(quarter FROM invoice_date) AS quarter,
SUM(total) as total_payments
FROM invoice
GROUP BY 1, 2
ORDER BY 1, 2;
year | quarter | total_payments
-----------+---------+----------------
2009 | 1 | 110.88
2009 | 2 | 112.86
2009 | 3 | 112.86
2009 | 4 | 112.86
2010 | 1 | 143.86
2010 | 2 | 112.86
2010 | 3 | 111.87
2010 | 4 | 112.86
2011 | 1 | 112.86
2011 | 2 | 144.86
2011 | 3 | 112.86
2011 | 4 | 99.00
<---------- TRUNCATED ---------->
SELECT
DATE_PART('year', invoice_date) AS year,
DATE_PART('quarter', invoice_date) AS quarter,
SUM(total) as total_payments
FROM invoice
GROUP BY 1, 2
ORDER BY 1, 2;
SELECT DATE_TRUNC('year', TIMESTAMP '2021-11-12 13:03:04') as year_truncated,
DATE_TRUNC('month', TIMESTAMP '2021-11-12 13:03:04') as month_truncated;
date_trunc | date_trunc
--------------------------+---------------------
2021-01-01 00:00:00 | 2021-11-01 00:00:0000