psql generate_series 方法不支持内部连接
psql generate_series method doesn't support concat inside
以下 sql 代码按预期工作
generate_series('2018-06-29 00:00:00','2018-06-29 23:00:00', interval '1 hour')
但是当我使用 concat 方法而不是前 2 个参数时,它会出现一条错误消息
generate_series(concat('2018-06-29 00:00:00', '+05'), concat('2018-06-29 23:00:00', '+05'), interval '1 hour')
错误信息
function generate_series(text, text, interval) does not exist
那是因为generate_series()
不对字符串进行操作。转换为正确的数据类型:
select generate_series(concat('2018-06-29 00:00:00'::text, '+05'::text)::timestamp,
concat('2018-06-29 23:00:00'::text, '+05'::text)::timestamp,
interval '1 hour'
)
无需 concat() 或字符串操作。
如果您想在开始和结束时间戳上加上 5 个小时,那么只需添加:
generate_series(timestamp '2018-06-29 00:00:00' + interval '5 hour',
timestamp '2018-06-29 23:00:00' + interval '5 hour', interval '1 hour')
如果你连接它变成文本数据类型。因此你不能生成系列。
下面的查询将产生所需的结果
不用写"interval"。由于开始和结束是时间戳 postgresql 理解 5h 和 1h 是 5hours 和 1hour
select
generate_series(timestamp '2018-06-29 00:00:00' + '5h',
timestamp '2018-06-29 23:00:00' + '5h',
'1h')
以下 sql 代码按预期工作
generate_series('2018-06-29 00:00:00','2018-06-29 23:00:00', interval '1 hour')
但是当我使用 concat 方法而不是前 2 个参数时,它会出现一条错误消息
generate_series(concat('2018-06-29 00:00:00', '+05'), concat('2018-06-29 23:00:00', '+05'), interval '1 hour')
错误信息
function generate_series(text, text, interval) does not exist
那是因为generate_series()
不对字符串进行操作。转换为正确的数据类型:
select generate_series(concat('2018-06-29 00:00:00'::text, '+05'::text)::timestamp,
concat('2018-06-29 23:00:00'::text, '+05'::text)::timestamp,
interval '1 hour'
)
无需 concat() 或字符串操作。
如果您想在开始和结束时间戳上加上 5 个小时,那么只需添加:
generate_series(timestamp '2018-06-29 00:00:00' + interval '5 hour',
timestamp '2018-06-29 23:00:00' + interval '5 hour', interval '1 hour')
如果你连接它变成文本数据类型。因此你不能生成系列。
下面的查询将产生所需的结果
不用写"interval"。由于开始和结束是时间戳 postgresql 理解 5h 和 1h 是 5hours 和 1hour
select generate_series(timestamp '2018-06-29 00:00:00' + '5h', timestamp '2018-06-29 23:00:00' + '5h', '1h')