2015-02-02 12 views
5

के लिए अमान्य इनपुट वाक्यविन्यास मुझे एक समस्या का सामना करना पड़ रहा है जहां मैं postgresql में किसी तारीख को अंतराल जोड़ने में सक्षम नहीं हूं। PostgreSQL किया जा रहा है में इसी बयान के साथटाइप अंतराल

date_add('2015-02-02', interval -46 day) 

: MySQL में मैं यह कर होगा

'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; 

उत्तर

11

आप एक तिथि के रूप में अपने स्ट्रिंग डाली हैं, कि समस्या का समाधान होगा:

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

अपने आप ही स्ट्रिंग अस्पष्ट है के रूप में वहाँ कई अलग अलग प्रकार के होते हैं समय का प्रतिनिधित्व करने के लिए।

2

करने के लिए एक आसान तरीका यह होगा:

date '2015-02-02' - interval '46 days' 
संबंधित मुद्दे