मान लें कि मेरे डेटाबेस में कोई व्यक्ति -73440000
यूनिक्स समय पर पैदा हुआ था। इसका मतलब है कि वह -Sep-1967 यूटीसी पर पैदा हुआ है लेकिन -Sep-1967 EDT। मैं EDT में के प्रत्येक दिन पैदा हुए लोगों की संख्या की गणना कैसे करूं?3-सितंबर-1 9 67 ईडीटी पर पैदा हुए # लोगों की गणना कैसे करें जब तारीख यूनिक्स टाइमस्टैम्प के रूप में संग्रहीत की जाती है?
बल्ले बंद ठीक है, आपको लगता है कि
SELECT FROM_UNIXTIME(-73440000)
-- returns NULL
रिटर्न NULL
की खोज करेंगे। MySQL नकारात्मक यूनिक्स टाइमस्टैम्प को संभाल नहीं सकता है।
ठीक है, हम चाहते हैं कि आस-पास काम कर सकते हैं:
select date_add('1970-01-01', interval -73440000 second)
-- returns 1967-09-04 00:00:00
1967-09-04 00:00:00
जो यूटीसी में अपनी जन्मतिथि है अर्जित करता है।
हम EDT (टोरंटो समय) में बदलने के लिए कोशिश कर सकते हैं:
select convert_tz('1967-09-04 00:00:00','UTC','America/Toronto')
-- returns 1967-09-04 00:00:00, but should be 1967-09-03 20:00:00
लेकिन के रूप में यह पता चला है, CONVERT_TZ
तारीखों पर या तो काम नहीं करता है 1970 तक पहले।
(मैं installed the timezones already है और यह 1970 और 2038 के बीच तारीखों को काम करता है) तो अब मैं अटक कर रहा हूँ
। मुझे यूनिक्स टाइमस्टैम्प को एक MySQL DATE में कनवर्ट करने की आवश्यकता है ताकि मैं इसके द्वारा समूह कर सकूं और फिर इसे COUNT कर सकूं। एकमात्र अन्य विकल्प जिसे मैं सोच सकता हूं प्रत्येक डेटाबेस में यूनिक्स टाइमस्टैम्प के रूप में रिकॉर्ड करना और रूपांतरण करने के लिए दूसरी भाषा का उपयोग करना और उन्हें टैली करना है, लेकिन अगर लाखों रिकॉर्ड हैं तो थोड़ा हास्यास्पद हो सकता है।
एनबी। आप ईडीटी और यूटीसी के बीच घंटे ऑफसेट की गणना नहीं कर सकते हैं क्योंकि यह पूरे वर्ष (डेलाइट बचत) में बदल सकता है।
आप इस जाँच कर सके कृपया http://stackoverflow.com/questions/14454304/convert-tz-returns-null? यह एक ही समस्या हो सकती है। – FZE
@ FeyyazEsatoğlu हाँ, मैं कुछ महीने पहले ही उस प्रश्न पर आया हूं। मैंने टाइमज़ोन को पहले से ही MySQL में स्थापित किया है - यह अब पूर्ण नहीं लौटाता है। हालांकि, 1 9 70 से पहले की तारीखों के लिए यह तारीख के रूप में, कोई रूपांतरण नहीं देता है। मुझे इसे पोस्ट करना चाहिए था। – mpen
ठीक है, डेटा को फ़िक्र करने के बारे में कैसे? जैसा कि हम जानते हैं कि टाइमस्टैम्प 22xx तक जा सकता है, अब से 100 साल जोड़ें, और 'CONVERT_TZ' को बेवकूफ बनाओ और आप डेटा को बेवकूफ़ बनाते समय कॉलम जोड़ सकते हैं '1 = 0' फिर सही तिथि खोजने के लिए चयन और घटाकर लपेटें। क्या यह संभव नहीं है? एक विचार है। – FZE