我在 Oracle SQL 中有如下表:
ID | date | place
-----------------------------
123 | 1610295784376 | OBJ_1
444 | 1748596758291 | OBJ_1
567 | 8391749204754 | OBJ_2
888 | 1747264526789 | OBJ_3
- ID - 客戶的 ID
- date - Unix 中的日期 UTC 時間戳
- 地點 - 與客戶聯系的地點
而且我需要匯總以上日期以實作如下結果,因此我需要:
將UTC中的unix時間戳從“日期”列轉換為正常日期,如下所示
計算“地點”列中每個值的最小和最大日期
min_date 最大日期 不同的地方 2022-01-05 2022-02-15 OBJ_1 2022-02-10 2022-03-20 OBJ_2 2021-10-15 2021-11-21 OBJ_3
uj5u.com熱心網友回復:
您可以使用:
SELECT TIMESTAMP '1970-01-01 00:00:00 UTC'
MIN(date_column) * INTERVAL '0.001' SECOND(3)
AS min_date,
TIMESTAMP '1970-01-01 00:00:00 UTC'
MAX(date_column) * INTERVAL '0.001' SECOND(3)
AS max_date,
place
FROM table_name
GROUP BY place;
注意:(3)afterSECOND是可選的,只會明確指定小數秒的精度。
要么:
SELECT TIMESTAMP '1970-01-01 00:00:00 UTC'
NUMTODSINTERVAL( MIN(date_column) / 1000, 'SECOND')
AS min_date,
TIMESTAMP '1970-01-01 00:00:00 UTC'
NUMTODSINTERVAL( MAX(date_column) / 1000, 'SECOND')
AS max_date,
place
FROM table_name
GROUP BY place;
其中,對于樣本資料:
CREATE TABLE table_name (ID, date_column, place) AS
SELECT 123, 1610295784376, 'OBJ_1' FROM DUAL UNION ALL
SELECT 444, 1748596758291, 'OBJ_1' FROM DUAL UNION ALL
SELECT 567, 1391749204754, 'OBJ_2' FROM DUAL UNION ALL -- Fixed leading digit
SELECT 888, 1747264526789, 'OBJ_3' FROM DUAL;
兩個輸出:
MIN_DATE MAX_DATE 地方 2021-01-10 16:23:04.376000000 UTC 2025-05-30 09:19:18.291000000 UTC OBJ_1 2014-02-07 05:00:04.754000000 UTC 2014-02-07 05:00:04.754000000 UTC OBJ_2 2025-05-14 23:15:26.789000000 UTC 2025-05-14 23:15:26.789000000 UTC OBJ_3
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/448734.html
下一篇:從XML檔案中提取值
