在表达时使用强制转换

Using cast in case when expression

提问人:Nigar Hesenli 提问时间:7/3/2023 最后编辑:Selaka NanayakkaraNigar Hesenli 更新时间:7/16/2023 访问量:66

问:

我想写这种类型的查询:

SELECT 
  CASE 
      WHEN t1.date_closed - t1.created_date < t3.estimated_solution_time_minutes  THEN 'не в SL'
  ELSE 'в SL'
  END AS  result

但是t1.date_closed和t1.created_date是这样的间隔 '2023-05-02 11:30', 但是t3.estimated_solution_time_minutes是整数,我得到错误:错误:运算符不存在:间隔<整数

如何将这些间隔转换为整数

SQL PostgreSQL 转换 案例 dbeaver

评论

1赞 Mike Organek 7/3/2023
用:t1.date_closed - t1.created_date < make_interval(mins => t3.estimated_solution_time_minutes)
1赞 Laurenz Albe 7/3/2023
我认为这个问题需要编辑。真的是吗?该名称另有说明,它不是 ,而是 .date_closedinterval'2023-05-02 11:30'intervaltimestamp

答:

0赞 Jora Karyan 7/3/2023 #1

Yu 可以使用此语法来更改类型

t1.date_closed :: INT
t1.created_date :: INT

第二种方式是

CAST(t1.date_closed as INT)
CAST(t1.created_date as INT)

评论

0赞 Nigar Hesenli 7/7/2023
我在选择后在哪里写这个语法?
0赞 Nigar Hesenli 7/7/2023
@Mike Organek,谢谢!您的评论解决了问题
0赞 Chris Travers 7/16/2023 #2

问题不在于 CAST。在这种情况下,您可能希望EXTRACT(SECONDS FROM (date_closed - created_date))