用户在PostgreSQL中选择的可变间隔选项

时间:2018-12-06 23:11:14

标签: sql postgresql variables time intervals

我目前在使用Postgresql中的INTERVAL函数来指定用户可选变量时遇到麻烦。

我知道如何像

一样使用INTERVAL
  

date '2001-09-28' + INTERVAL '1 hour'

但是我想允许用户根据需要更改1 hour

当前,我发现

  

date '2001-09-28' + INTERVAL '{{number}} hour'

有效,但是我希望能够允许用户更改时间范围(在这种情况下为小时)(小时/天/周/月/月等)。 date '2001-09-28' + interval '{{number}} {{timeframe}}'不起作用。我收到错误

  

org.postgresql.util.PSQLException: The column index is out of range: 3, number of columns: 2.

我尝试了各种不同的方法,但是没有一个方法给出了我想要的答案。我曾尝试搜索类似的问题,以期找到答案,但没有找到任何答案。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

我认为您需要一个case表达式:

date '2001-09-28' + {{number}} * (case {{timeframe}}
                                      when 'hour' then interval '1 hour'
                                      when 'minute' then interval '1 minute'
                                      when 'second' then interval '1 second'
                                   end)