2016-06-26 10 views
10

मैं यकीन है कि निम्न क्वेरी Presto पर मेरे लिए काम करने के लिए इस्तेमाल कर रहा हूँ स्थिर तारीख और टाइमस्टैम्प: अबPresto - में जहां खंड

select segment, sum(count) 
from modeling_trends 
where segment='2557172' and date = '2016-06-23' and count_time between '2016-06-23 14:00:00.000' and '2016-06-23 14:59:59.000'; 
group by 1; 

जब मैं इसे चलाने (ईएमआर पर Presto 0.147 पर) मैं एक मिल करने के लिए दिनांक/टाइमस्टैम्प varchar बताए की कोशिश की त्रुटि ..

मैं इसे का उपयोग कर काम कर सकते हैं:

select segment, sum(count) 
from modeling_trends 
where segment='2557172' and date = cast('2016-06-23' as date) and count_time between cast('2016-06-23 14:00:00.000' as TIMESTAMP) and cast('2016-06-23 14:59:59.000' as TIMESTAMP) 
group by segment; 

लेकिन यह गंदा लगता है ... वहाँ यह करने के लिए एक बेहतर तरीका है?

उत्तर

16

कुछ अन्य डेटाबेस के विपरीत, प्रेस्टो स्वचालित रूप से स्थिरांक के लिए वर्चर और अन्य प्रकारों के बीच परिवर्तित नहीं होता है। कलाकारों से काम करता है, लेकिन एक सरल तरीका प्रकार कंस्ट्रक्टर्स उपयोग करने के लिए है:

WHERE segment = '2557172' 
    AND date = date '2016-06-23' 
    AND count_time BETWEEN timestamp '2016-06-23 14:00:00.000' AND timestamp '2016-06-23 14:59:59.000' 

आप विभिन्न प्रकार के यहाँ उदाहरण देख सकते हैं: https://prestodb.io/docs/current/language/types.html

-2

बस एक त्वरित विचार .. क्या आपने अपनी तिथि में डैश को छोड़ने का प्रयास किया है? 2016-06-23 के बजाय 20160623 आज़माएं।

मुझे SQL सर्वर के साथ कुछ ऐसा ही सामना करना पड़ा, लेकिन प्रेस्टो का उपयोग नहीं किया गया।

+0

नहीं काम नहीं करता है .. अब यह पूर्णांक के रूप में तिथि (व्याख्या '=' तिथि, पूर्णांक पर लागू नहीं किया जा सकता है) –

संबंधित मुद्दे