Chapter2 34
Chapter2 34
arithmetic operators
F U N C T I O N S F O R M A N I P U L AT I N G D ATA I N P O S T G R E S Q L
Brian Piccolo
Sr. Director, Digital Strategy
Topics
Overview of basic arithmetic operators
+---------+
| integer |
|---------|
| 1 |
+---------+
+------------+
| date |
|------------|
| 2005-09-14 |
+------------+
+----------------+
| interval |
|----------------|
| 1 day 12:00:00 |
+----------------+
+----------------+
| interval |
|----------------|
| 1 day 12:00:00 |
+----------------+
+-----------------------------------+
| age |
|-----------------------------------|
| 13 years 11 mons 12 days 01:06:30 |
| 13 years 11 mons 12 days 01:05:27 |
| 13 years 11 mons 12 days 00:56:21 |
+-----------------------------------+
+---------------------+
| expected_return |
|---------------------|
| 2005-05-27 22:53:30 |
+---------------------+
+----------------------------+
| timestamp without timezone |
|----------------------------|
| 2019-05-22 00:00:00 |
+----------------------------+
Brian Piccolo
Sr. Director, Digital Strategy
Retrieving the current timestamp
SELECT NOW();
+-------------------------------+
| now() |
|-------------------------------|
| 2019-04-19 02:51:18.448641+00 |
+-------------------------------+
+----------------------------+
| now() |
|----------------------------|
| 2019-04-19 02:51:18.448641 |
+----------------------------+
CAST() function
SELECT CAST(NOW() as timestamp);
+-------------------------------+
| current_timestamp |
|-------------------------------|
| 2019-04-19 02:51:18.448641+00 |
+-------------------------------+
+-------------------------------+
| current_timestamp |
|-------------------------------|
| 2019-04-19 02:51:18.44+00 |
+-------------------------------+
+--------------+
| current_date |
|--------------|
| 2019-04-19 |
+--------------+
+------------------------+
| current_time |
|------------------------|
| 04:06:30.929845+00:00 |
+------------------------+
Brian Piccolo
Sr. Director, Digital Strategy
Extracting and transforming date and time data
Exploring the EXTRACT() , DATE_PART() and DATE_TRUNC() functions
2005-05-13 08:53:53
2005 or 5 or 2 or Friday
2005-05-13 00:00:00
+---------+
| quarter |
|---------|
| 1 |
+---------+
+--------------------------------------------------------------------------------+
| payment_id | customer_id | staff_id | rental_id | amount | payment_date |
|------------|-------------|----------|-----------|--------|---------------------|
| 1 | 1 | 1 | 76 | 2.99 | 2005-05-25 11:30:37 |
| 2 | 1 | 1 | 573 | 0.99 | 2005-05-28 10:35:23 |
| 3 | 1 | 1 | 1185 | 5.99 | 2005-06-15 0:54:12 |
+--------------------------------------------------------------------------------+
SELECT +---------------------------------+
EXTRACT(quarter FROM payment_date) AS quarter, | quarter | year | total_payments |
EXTRACT(year FROM payment_date) AS year, |---------|------|----------------|
SUM(amount) AS total_payments | 2 | 2005 | 14456.31 |
FROM | 3 | 2005 | 52446.02 |
payment | 1 | 2006 | 514.18 |
GROUP BY 1, 2; +---------------------------------+