हिमपात में 2 तिथियों के बीच AGE

Netezza में हमारे पास AGE नामक फ़ंक्शन है, लेकिन स्नोफ्लेक मुझे ऐसा कुछ नहीं मिला

Netezza: AGE('2019-12-01', '2018-12-12') चुनें - o/p: 11 महीने 20 दिन

क्या स्नोफ्लेक में समान कार्य है?

1
Jeyavel 24 पद 2019, 06:14

1 उत्तर

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

इसलिए दिया गया Netezza PostgreSQL पर आधारित है, इसलिए यह AGE फ़ंक्शन, स्नोफ्लेक के DATEDIFF के बराबर है , लेकिन पोस्टग्रेएसक्यूएल अंतराल की तरह यह इसे वर्षों/महीनों/दिनों के सरलीकृत शब्दों में व्यक्त करने में चूक करता है। स्नोफ्लेक ऐसा फ़ंक्शन प्रदान नहीं करता है जो ऐसा करता है। इसके अलावा मापदंडों का क्रम बदली है।

इस प्रकार आपका AGE('2019-12-01', '2018-12-12') DATEDIFF('days', '2018-12-12', '2019-12-01') होगा

मैं सुझाव देने जा रहा था कि आप भागों को बनाने के लिए निम्नलिखित कार्य कर सकते हैं, लेकिन मुझे पूरा यकीन है कि यह बर्फ के टुकड़े में एक बग है:

select '2018-12-12'::date AS st
,'2019-12-01'::date AS et
--,DATEDIFF('month', st,et) AS t_m
--,DATEDIFF('days', st,et) AS t_d
,DATEDIFF('year', st,et) AS y
,DATEADD('year', y, st) AS yst
,DATEDIFF('month', yst,et) AS m 
,DATEADD('month', m, yst) AS mst
,DATEDIFF('day', mst,et) AS d 
;

AS y 1 है और t_m 12 है, जो मुझे नहीं लगता कि उन्हें होना चाहिए क्योंकि यह केवल 354 दिन है।

मैं एक बग रिपोर्ट खोलूंगा। लेकिन अगर/जब यह तय हो जाता है तो आप स्ट्रिंग को वापस पाने के लिए वाई, एम, और डी की तुलना कर सकते हैं यदि आपको इसकी आवश्यकता है .. अन्यथा मैं खुद दिनों तक टिकूंगा ..

3
Simeon Pilgrim 24 पद 2019, 04:01