mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-08-25 15:38:34 +00:00
c3cd186997
* fix(query): respect timezone in insert values Signed-off-by: Morax <james20081204@gmail.com> * fix(query): normalize timestamp casts with query timezone Signed-off-by: Morax <james20081204@gmail.com> * fix(query): scope timestamp conversion to insert assignments Signed-off-by: Morax <james20081204@gmail.com> * style(query): simplify Arc usage Signed-off-by: Morax <james20081204@gmail.com> --------- Signed-off-by: Morax <james20081204@gmail.com>
106 lines
2.5 KiB
Plaintext
106 lines
2.5 KiB
Plaintext
--- insert timestamp with default values aware of session timezone test ---
|
|
CREATE TABLE test1 (i INTEGER, j TIMESTAMP default '2024-01-30 00:01:01' TIME INDEX, PRIMARY KEY(i));
|
|
|
|
Affected Rows: 0
|
|
|
|
INSERT INTO test1 VALUES (1, DEFAULT), (2, DEFAULT), (3, '2024-01-31 00:01:01'), (4, '2025-02-01 00:01:01');
|
|
|
|
Affected Rows: 4
|
|
|
|
SELECT * FROM test1 ORDER BY j;
|
|
|
|
+---+---------------------+
|
|
| i | j |
|
|
+---+---------------------+
|
|
| 1 | 2024-01-30T00:01:01 |
|
|
| 2 | 2024-01-30T00:01:01 |
|
|
| 3 | 2024-01-31T00:01:01 |
|
|
| 4 | 2025-02-01T00:01:01 |
|
|
+---+---------------------+
|
|
|
|
SET time_zone = 'Asia/Shanghai';
|
|
|
|
Affected Rows: 0
|
|
|
|
CREATE TABLE test2 (i INTEGER, j TIMESTAMP default '2024-01-30 00:01:01' TIME INDEX, PRIMARY KEY(i));
|
|
|
|
Affected Rows: 0
|
|
|
|
INSERT INTO test2 VALUES (1, DEFAULT), (2, DEFAULT), (3, '2024-01-31 00:01:01'), (4, '2025-02-01 00:01:01');
|
|
|
|
Affected Rows: 4
|
|
|
|
SELECT * FROM test2 ORDER BY j;
|
|
|
|
+---+---------------------+
|
|
| i | j |
|
|
+---+---------------------+
|
|
| 1 | 2024-01-29T16:01:01 |
|
|
| 2 | 2024-01-29T16:01:01 |
|
|
| 3 | 2024-01-30T16:01:01 |
|
|
| 4 | 2025-01-31T16:01:01 |
|
|
+---+---------------------+
|
|
|
|
SELECT * FROM test1 ORDER BY j;
|
|
|
|
+---+---------------------+
|
|
| i | j |
|
|
+---+---------------------+
|
|
| 1 | 2024-01-30T00:01:01 |
|
|
| 2 | 2024-01-30T00:01:01 |
|
|
| 3 | 2024-01-31T00:01:01 |
|
|
| 4 | 2025-02-01T00:01:01 |
|
|
+---+---------------------+
|
|
|
|
CREATE TABLE test3 (ts TIMESTAMP TIME INDEX, st TIMESTAMP, ts_ns TIMESTAMP(9));
|
|
|
|
Affected Rows: 0
|
|
|
|
INSERT INTO test3 (ts) VALUES ('2026-08-01 12:00:00.001');
|
|
|
|
Affected Rows: 1
|
|
|
|
INSERT INTO test3 (ts, st) VALUES ('2026-08-02 12:00:00.001', now());
|
|
|
|
Affected Rows: 1
|
|
|
|
INSERT INTO test3 (ts, st) SELECT '2026-08-03 12:00:00.001', now();
|
|
|
|
Affected Rows: 1
|
|
|
|
INSERT INTO test3 (ts, st, ts_ns) VALUES (
|
|
'2026-08-04 12:00:00.001',
|
|
now(),
|
|
'2026-08-04 12:00:00.123456789'
|
|
);
|
|
|
|
Affected Rows: 1
|
|
|
|
SELECT ts, ts_ns FROM test3 ORDER BY ts;
|
|
|
|
+-------------------------+-------------------------------+
|
|
| ts | ts_ns |
|
|
+-------------------------+-------------------------------+
|
|
| 2026-08-01T04:00:00.001 | |
|
|
| 2026-08-02T04:00:00.001 | |
|
|
| 2026-08-03T04:00:00.001 | |
|
|
| 2026-08-04T04:00:00.001 | 2026-08-04T04:00:00.123456789 |
|
|
+-------------------------+-------------------------------+
|
|
|
|
SET time_zone = 'UTC';
|
|
|
|
Affected Rows: 0
|
|
|
|
DROP TABLE test1;
|
|
|
|
Affected Rows: 0
|
|
|
|
DROP TABLE test2;
|
|
|
|
Affected Rows: 0
|
|
|
|
DROP TABLE test3;
|
|
|
|
Affected Rows: 0
|
|
|