我有一个包含以下字段的 PostgreSQL 表:
F1
:time without time zone
F2
:time without time zone
然后我添加了一个字段calde
作为“时间范围”(tsrange
)。
我需要更新表格并将 F1 和 F2 设置为 a tsrange
,但我得到:
update Table1 set timerange=[F1,F2]
ERROR: syntax error at or near "["
我有一个包含以下字段的 PostgreSQL 表:
F1
: time without time zone
F2
: time without time zone
然后我添加了一个字段calde
作为“时间范围”(tsrange
)。
我需要更新表格并将 F1 和 F2 设置为 a tsrange
,但我得到:
update Table1 set timerange=[F1,F2]
ERROR: syntax error at or near "["
首先,不清楚您想要的是时间范围(即上午 8 点到下午 6 点的营业时间)还是时间戳范围(例如 2025 年 1 月 11 日晚上 8 点开始并于同一天晚上 10 点结束的比赛)。
如果您需要的是一系列的时间戳,那么答案非常简单:
如果您需要一个时间范围,任务会更加复杂,因为 PostgreSQL 没有内置这种类型。但创建时间范围类型并不太难:
当您创建此范围类型时,PostgreSQL 会自动创建一个
trange(time, time)
可用于构造时间范围的函数: