मुझे लगता है कि आपकी समस्या CONVERT_TZ
नहीं है , लेकिन FROM_UNIXTIME
।
FROM_UNIXTIME
एक पूर्णांक को तर्क के रूप में लेता है - जिसका अर्थ है 32 बिट।
यदि आप आज का यूनिक्स-टाइमस्टैम्प लेते हैं:1480546792
, सही 24 बिट स्थानांतरित - आप unix_time
पर मान्य पैरामीटर के लिए 32-बिट सीमा को पार कर रहे हैं ।
from_unixtime
केवल 2147483647
तक के मापदंडों को संभाल सकता है - जिसका अर्थ है, यह 2038-01-19 04:14:07
. तक काम करता है
मुझे भी इस समस्या का सामना करना पड़ा है, और 2002 से इसका समाधान "विकासाधीन" है।
जब तक इसका अंतत:समाधान नहीं हो जाता, तब तक आपको date_add
. का उपयोग करते हुए एक वैकल्पिक हल का उपयोग करना चाहिए . इसके बजाय
from_unixtime (x)
उपयोग करें
date_add(from_unixtime(0), INTERVAL x second)
परिणाम (ओं):
SELECT from_unixtime (2147483647); //2038-01-19 04:14:07
SELECT from_unixtime (2147483648); //NULL
SELECT date_add(from_unixtime(0), Interval 2147483647 second) //2038-01-19 04:14:07
SELECT date_add(from_unixtime(0), Interval 2147483648 second) //2038-01-19 04:14:08