MySQL के NOW() और CURDATE() को UTC समयक्षेत्र में काम करने के लिए कॉन्फ़िगरेशन फ़ाइल में सेटिंग बदलनी होती है।
विधि 1: my.cnf / my.ini में स्थायी सेटिंग
कॉन्फ़िगरेशन फ़ाइल में [mysqld] सेक्शन के अंतर्गत जोड़ें:
[mysqld] default-time-zone = '+00:00'
या [mysqld_safe] के अंतर्गत:
[mysqld_safe] timezone = UTC
फिर MySQL सेवा पुनरारंभ करें।
विधि 2: सत्र के लिए अस्थायी सेटिंग
SET time_zone = '+00:00';
विधि 3: कनेक्शन स्ट्रिंग में (एप्लिकेशन स्तर पर)
JDBC: ?serverTimezone=UTC
Python: charset=utf8mb4, timezone='UTC'
महत्वपूर्ण नोट्स
my.cnfमें सेटिंग स्थायी होती है - हर पेज लोड पर क्वेरी चलाने की जरूरत नहींSET time_zoneकेवल वर्तमान सत्र के लिएNOW()सर्वर समयक्षेत्र का उपयोग करता है,UTC_TIMESTAMP()हमेशा UTC देता है- सर्वर समयक्षेत्र जांचें:
SELECT @@global.time_zone, @@session.time_zone;
सर्वोत्तम अभ्यास: एप्लिकेशन स्तर पर UTC में काम करें, डेटाबेस में UTC स्टोर करें, प्रदर्शन के समय उपयोगकर्ता के समयक्षेत्र में बदलें।