【发布时间】:2020-01-25 17:13:14
【问题描述】:
我有一个名为 timestamps 的小表,里面只有一个变量 ts:
ts
1541990258796
1541990258312
1541990258367
<...>
基于时间戳表的 ts 值,我想创建一个 factTime 表,从这些 ts 值中提取小时、日和工作日。我目前的查询是这样,并且有效。
time_table_insert = (
"""
INSERT INTO factTime (start_time, hour, day_of_month, weekday)
SELECT DISTINCT ts AS start_time,
EXTRACT(HOUR FROM start_time) AS hour,
EXTRACT(DAY FROM start_time) AS day_of_month,
EXTRACT(DOW FROM start_time) AS weekday
FROM (SELECT DISTINCT ts,'1970-01-01'::date + ts/1000 * interval '1 second' as start_time FROM timestamps);
""")
现在我用 DOW 插入一个以数字表示的工作日。有没有办法提取它的实际名称?我应该如何更改查询以获取实际的工作日,即星期一、星期五等。
【问题讨论】:
-
to_char与DAY或day。见postgresql.org/docs/9.1/…
标签: sql postgresql