TIMESTAMP¶
In GlueSQL, the TIMESTAMP data type is used to store date and time values in the format 'YYYY-MM-DD HH:MM:SS.SSSS'. Although timezone information can be included in the input string, GlueSQL stores all TIMESTAMP values in UTC, discarding the timezone information.
Creating a table with TIMESTAMP columns¶
To create a table with columns of type TIMESTAMP, use the CREATE TABLE statement:
Inserting data into a table with TIMESTAMP columns¶
To insert data into a table with TIMESTAMP columns, use the INSERT INTO statement:
INSERT INTO TimestampLog VALUES
(1, '2020-06-11 11:23:11Z', '2021-03-01'),
(2, '2020-09-30 12:00:00 -07:00', '1989-01-01T00:01:00+09:00'),
(3, '2021-04-30T07:00:00.1234-17:00', '2021-05-01T09:00:00.1234+09:00');
The input strings include timezone information, but GlueSQL will convert and store them as UTC timestamps.
Querying data from a table with TIMESTAMP columns¶
To query data from a table with TIMESTAMP columns, use the SELECT statement:
Filtering data using TIMESTAMP columns¶
You can use various comparison operators like >, <, <=, >=, and = to filter data based on TIMESTAMP columns:
SELECT * FROM TimestampLog WHERE t1 > t2;
SELECT * FROM TimestampLog WHERE t1 = t2;
SELECT * FROM TimestampLog WHERE t1 = '2020-06-11T14:23:11+0300';
SELECT * FROM TimestampLog WHERE t2 < TIMESTAMP '2000-01-01';
Performing timestamp arithmetic¶
You can perform arithmetic operations on TIMESTAMP columns using INTERVAL:
SELECT id, t1 - t2 AS timestamp_sub FROM TimestampLog;
SELECT
id,
t1 - INTERVAL '1' DAY AS sub,
t2 + INTERVAL '1' MONTH AS add
FROM TimestampLog;
Handling invalid timestamp values¶
If you try to insert an invalid timestamp value into a TIMESTAMP column, GlueSQL will return an error:
This will result in an error similar to the following:
Conclusion¶
In GlueSQL, the TIMESTAMP data type allows you to store date and time values with precision up to milliseconds. The provided code snippet demonstrates how to create a table with TIMESTAMP columns, insert data into it, and perform various queries and operations on the data. When inserting a TIMESTAMP value, the timezone information is removed, and the data is stored in UTC. This ensures that all time values are consistent and can be easily converted to different time zones when needed.