加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 类型interval的输入语法无效

发布时间:2020-12-13 18:09:33 所属栏目:百科 来源:网络整理
导读:我遇到一个问题,我无法在 postgresql中添加间隔到日期.在 MySql中我会这样做: date_add('2015-02-02',interval -46 day) 与postgresql中的相应语句是: '2015-02-02' + -46 * interval '1 day' 但是,当我这样做时,我得到一个错误: [Err] ERROR: invalid in
我遇到一个问题,我无法在 postgresql中添加间隔到日期.在 MySql中我会这样做:
date_add('2015-02-02',interval -46 day)

与postgresql中的相应语句是:

'2015-02-02' + -46 * interval '1 day'

但是,当我这样做时,我得到一个错误:

[Err] ERROR:  invalid input syntax for type interval: "2015-02-02"

如果我删除语句的-46 * interval’1 day’部分,它将按预期工作.

简化查询:

SELECT
    cd.date_sort_prequeue_start AS date,SUM(CASE WHEN cd.call_conclusion='Answered' THEN 1 ELSE 0 END) AS calls_answered
FROM 
    data_warehouse.call_detail AS cd
    INNER JOIN data_warehouse.users_history AS uh ON cd.users_history_id=uh.id
WHERE 
    cd.date_sort_prequeue_start>= '2015-02-02' + (-46 * INTERVAL '1 day') 
    AND cd.date_sort_prequeue_start<'2015-02-02' 
    AND cd.call_type='I' AND uh.team='TeamOne'
GROUP BY 
    cd.date_sort_prequeue_start
ORDER BY 
    cd.date_sort_prequeue_start;
如果将字符串转换为日期,则可以解决问题:
'2015-02-02'::date + -46 * interval '1 day'

字符串本身是不明确的,因为有几种不同的类型来表示时间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读