我想在每个位置信息中混合外部时区,以过滤具有没有时区值的时间戳的行。
我如何在 Jooq 中表达这个 SQL (Postgresql) 片段
WITH
now(locaton, value) AS (
SELECT
*
FROM unnest(
ARRAY[1,2]::BIGINT[],
ARRAY['2017-05-28 09:30','2017-05-28 10:30']::TIMESTAMP[])
)
SELECT *
FROM now;
不太理想但仍然有效的片段是:
WITH
now(locaton, value) AS (
SELECT
unnest(ARRAY[1,2]::BIGINT[]) as location,
unnest(ARRAY['2017-05-28 09:30','2017-05-28 10:30']::TIMESTAMP[]) as value
)
SELECT *
FROM now;
可能更正确的一个(被添加对 SQL 标准 WITH ORDINALITY 子句的支持阻止 #5799)
SELECT location, value
FROM
unnest(ARRAY[1,2]::BIGINT[]) WITH ORDINALITY as location
JOIN unnest(ARRAY['2017-05-28 09:30','2017-05-28 10:30']::TIMESTAMP[]) WITH ORDINALITY as value
USING (ordinality);
要得到
location | value
------------+---------------------
1 | 2017-05-28 09:30:00
2 | 2017-05-28 10:30:00
(2 rows)