मैं PostgreSQL में दिन के नाम के साथ टाइमस्टैम्प की बराबरी करना चाहता हूं और मैं दिन के नाम के संबंध में परिणाम सेट करना चाहता हूं। मैंने उप क्वेरी और कुछ फ़ंक्शंस का भी उपयोग करने का प्रयास किया लेकिन सिंटैक्स त्रुटियां और फ़ंक्शन प्राप्त करने में SQL त्रुटियां मौजूद नहीं हैं। कृपया मदद करे।

मैंने to_char और to_timestamp फ़ंक्शंस का उपयोग करने का प्रयास किया लेकिन जब मैं उन्हें उप क्वेरी में बाध्य कर रहा हूं तो मैं सिंटैक्स त्रुटियों में फंस रहा हूं। पहले मैंने यह प्रश्न लिखा था जो टाइमस्टैम्प से दिन निकालता है।

select to_char(TO_TIMESTAMP(1534994169000 / 1000), 'Day');

फिर मैंने कोड में दिखाए गए उप क्वेरी में इस क्वेरी का उपयोग करने का प्रयास किया।

select * from tests where testtimestamp = (to_timestamp(TO_TIMESTAMP(1531803015000 / 1000), 'Day'));

select * from tests where testtimestamp = (select to_timestamp(to_char(TO_TIMESTAMP(1534994169000 / 1000), 'Day')))

मुझे जो त्रुटियां हो रही हैं वह है

SQL त्रुटि [42883]: त्रुटि: to_timestamp फ़ंक्शन (समय के साथ टाइमस्टैम्प) क्षेत्र, अज्ञात) मौजूद नहीं है संकेत: कोई फ़ंक्शन दिए गए से मेल नहीं खाता नाम और तर्क प्रकार। आपको स्पष्ट प्रकार के कास्ट जोड़ने की आवश्यकता हो सकती है।
स्थिति: 44 त्रुटि: कार्य to_timestamp (समय क्षेत्र के साथ टाइमस्टैम्प, अज्ञात) मौजूद नहीं है संकेत: कोई फ़ंक्शन दिए गए नाम से मेल नहीं खाता और तर्क प्रकार। आपको स्पष्ट प्रकार के कास्ट जोड़ने की आवश्यकता हो सकती है। पद: 44 त्रुटि: कार्य to_timestamp (समय क्षेत्र के साथ टाइमस्टैम्प, अज्ञात) मौजूद नहीं है संकेत: कोई फ़ंक्शन दिए गए नाम और तर्क से मेल नहीं खाता प्रकार। आपको स्पष्ट प्रकार के कास्ट जोड़ने की आवश्यकता हो सकती है। पद: 44

0
Pratik Pathare 30 जुलाई 2019, 09:21

2 जवाब

सबसे बढ़िया उत्तर

चूंकि आपका स्वरूपण एक टेक्स्ट आउटपुट (यानी बुधवार) उत्पन्न करता है, इसलिए समानता की तुलना करने के लिए आपको अपनी तालिका में टाइमस्टैम्प फ़ील्ड पर एक रूपांतरण भी करना होगा। मुझे कुछ ऐसा लगता है।

select 
       * 
  from 
       tests 
 where 
       to_char(TO_TIMESTAMP(testtimestamp / 1000), 'Day') 
       = 
       to_char(TO_TIMESTAMP(1534994169000 / 1000), 'Day');

सुनिश्चित करें कि आप to_char और to_timestamp का उपयोग करते हैं (ऊपर अपनी पहली क्वेरी में आपने to_timestamp को दो बार किया, जिसके कारण त्रुटि हुई)। यदि आप इसे काम करने के लिए करते हैं, तो आप इसे तेज करने के लिए कार्यात्मक अनुक्रमणिका देखना चाहेंगे।

0
xzilla 30 जुलाई 2019, 09:42

आप EXTRACT का उपयोग कर सकते हैं

WHERE extract( day from testtimestamp)
   = extract ( day from TO_TIMESTAMP(1534994169000 / 1000) )
0
Kaushik Nayak 30 जुलाई 2019, 09:43