vei*_*ich 1 sql postgresql datetime date-range
我使用PostgreSQL 9.4我有一个名为表列timerange,并希望写一个SELECT查询将返回的时间范围在两个单独的列time_start和time_end.我试图像数组一样处理它,但它不起作用:
select *, timerange[0] as t_start from schedules;
当前表格:
| id | - - - - - - - - - - -时间范围 - - - - - - - - - - - - - - ----------- |
| ---- | -------------------------------------------- ------------------------------ |
| 1 | ["2017-05-05 19:00:00 + 02","2017-05-05 21:00:00 + 02")|
| 2 | ["2017-05-05 19:00:00 + 02","2017-05-05 21:00:00 + 02")|
所需表格:
| id | -------- -------------- TIME_START | ------ TIME_END ------------------- |
| ---- | ------------------------------------ | ------- ------------------------------ |
| 1 | "2017-05-05 19:00:00 + 02"| "2017-05-05 21:00:00 + 02"|
| 2 | "2017-05-05 19:00:00 + 02"| "2017-05-05 21:00:00 + 02"|
使用 lower()和upper().
像这样:
SELECT lower(tsrng) AS start, upper(tsrng) AS end
FROM (
SELECT tstzrange('2017-05-05 12:00:05', '2017-05-05 16:00:05', '[)') AS tsrng
) sub;
Run Code Online (Sandbox Code Playgroud)
或者你的例子:
select *, lower(timerange) as t_start, upper(timerange) as t_end from schedules;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |