में समर्थित सबसे पुराना टाइमस्टैम्प मैं कई अलग-अलग समय क्षेत्रों (और समय की अवधि) में अलग-अलग डेटाबेस के साथ काम करता हूं और एक चीज जो आम तौर पर समस्याओं को उत्पन्न करती है, दिनांक/समय परिभाषा है।PostgreSQL
इस कारण से, और चूंकि तिथि एक प्रारंभिक मूल्य का संदर्भ है, यह ट्रैक रखने के लिए कि इसकी गणना कैसे की गई थी, मैं आधार दिनांक को स्टोर करने का प्रयास करता हूं; i.e .: उस विशेष कंप्यूटर/डेटाबेस में समर्थित न्यूनतम दिनांक;
यदि मैं इसे अच्छी तरह से देख रहा हूं, तो यह आरडीबीएमएस और प्रकार के विशेष भंडारण पर निर्भर करता है। SQL सर्वर में, मुझे इस "आधार दिनांक" की गणना करने के कुछ तरीके मिले;
SELECT CONVERT(DATETIME, 0)
या
SELECT DATEADD(MONTH, 0, 0)
या यहाँ तक कि इस तरह की एक डाली:
DECLARE @300 BINARY(8)
SET @300 = 0x00000000 + CAST(300 AS BINARY(4))
set @dt=(SELECT CAST(@300 AS DATETIME) AS BASEDATE)
print CAST(@dt AS NVARCHAR(100))
मेरा प्रश्न है (जहां @dt एक datetime चर रहा है), वहाँ एक समान है PostgreSQL में आधार दिनांक की गणना करने का तरीका, यानी: वह मान जो न्यूनतम दिनांक समर्थित है और सभी गणनाओं के आधार पर है?
date
type के वर्णन से, मैं देख सकता हूँ कि समर्थित न्यूनतम तारीख 4713 ईसा पूर्व है, लेकिन (एक स्वरूपित तारीख स्ट्रिंग के रूप में उदाहरण के लिए) प्रोग्राम के रूप में यह मान रही का एक तरीका है, जैसा कि मैंने एसक्यूएल सर्वर में करते हैं?
आप SQL सर्वर में यह "0 दिनांक" आधार दिनांक को अच्छी तरह से कॉल कर सकते हैं, लेकिन यदि आपको लगता है कि यह न्यूनतम दिनांक भी समर्थित है (और आपके शब्द से, ऐसा लगता है कि आप ऐसा करते हैं), तो आप गलत हैं। यह '1 9 00-01-01 'में परिवर्तित हो जाएगा, और' smalldatetime' एकमात्र दिनांक/समय प्रकार है जो इससे पहले की तारीखों को संभाल नहीं सकता है। तर्कसंगत रूप से अधिक व्यापक रूप से उपयोग किए जाने वाले 'डेटाटाइम' की तारीख '1753-01-01 'तक है, और नए प्रकार' दिनांक', 'डेटाटाइम 2',' डेटाटाइमसेट 'समर्थन मूल्य' 0001-01-01' तक, केवल FYI तक का समर्थन करता है। –
चूंकि मैं न्यूनतम मान के बजाए संदर्भ की तलाश में हूं (हालांकि मैं न्यूनतम मान संदर्भ के रूप में कार्य कर सकता हूं ...), मैं इसके साथ रहूंगा: to_timestamp (0) :: date; – doublebyte