2009-06-03 7 views
38

मैं इसे MySQL क्वेरी में अब() और CURDATE() को कॉल करना चाहता हूं, यूटीसी में दिनांक वापस कर देता हूं। मैं इन कार्यों का उपयोग करने वाले सभी प्रश्नों को बदलने और बदलने के बिना कैसे हो सकता हूं?मैं MySQL के अब() और CURDATE() फ़ंक्शंस को यूटीसी का उपयोग कैसे करूं?

+9

जो भी आप पूछते हैं उस पर सटीक रूप से नहीं, लेकिन कभी-कभी UTC_TIMESTAMP() –

+0

का उपयोग करने के लिए बेहतर यह आपकी मदद कर सकता है: http://stackoverflow.com/questions/19023978/should-mysql-have-its-timezone-set -to-utc –

+0

इसके बारे में कैसे: http://w3resource.com/mysql/date -और-टाइम-फ़ंक्शंस/mysql-utc_timestamp-function.php – zx1986

उत्तर

33

अंत में मैं क्या करने के लिए ...

my.cnf में देख रहा था पाया, शामिल

[mysqld_safe] 
timezone = UTC 

मैं था इस विकल्प को [mysqld] के तहत डालना, और mysql शुरू करने में विफल रहा था।

कॉलिंग "SET time_zone = '+ 0:00';" प्रत्येक पृष्ठ लोड पर भी काम करेगा, लेकिन मुझे उस प्रश्न को प्रत्येक पृष्ठ लोड पर कॉल करने का विचार पसंद नहीं है।

+0

तो, यह हर किसी के लिए सच है कि टाइमज़ोन = यूटीसी [mysqld_safe] में जाना चाहिए, और [mysqld] में नहीं? – Jimmy

+2

इसे [mysqld] में डालने से यह शुरू करने में असमर्थ हो जाता है। लेकिन मेरे लिए, इसे [mysqld_safe] में डालकर अभी भी स्थानीय समय के रूप में स्थानीय समय के रूप में तारीखें डालते हैं()। – sigurdga

+0

यह सेटिंग mysql को मेरे लिए यूटीसी में नहीं बदलती है - mysql 5.5.47-0ubuntu0.14.04.1। नीचे अरुलराज का जवाब मेरे लिए काम करता था, हालांकि। मैक ओएसएक्स पर – Julian

23

अपने सर्वर की घड़ी को यूटीसी पर सेट करें। सच में नहीं।

यदि आप इसे कर सकते हैं, तो ऐसा करें।

स्थानीय समय क्षेत्र में चल रहे सबसे बड़े सिरदर्द "क्रॉन" नौकरियां आदि में से एक है, इसका मतलब है कि साल में एक बार कुछ क्रॉन नौकरियां छूट जाएंगी, और बाकी सभी आधे वर्ष के लिए जीएमटी के अलग-अलग समय पर चलेंगे (मुझे लगता है कि आप एक समय क्षेत्र में हैं जिसमें डेलाइट सेविंग टाइम है)।

MySQL में समय क्षेत्र का समर्थन है, लेकिन यह पागल और गड़बड़ है। अगर आपको ऐसा नहीं करना है तो इसका इस्तेमाल न करें। बस अपने सर्वर की घड़ी यूटीसी पर सेट करें और समय काम करना शुरू कर देगा कि इसे कैसे करना चाहिए।

मुझे पता है कि सर्वर घड़ी को बदलने से किसी भी प्रबंधित सिस्टम के लिए एक बड़ा बदलाव होता है, और आपके पास बड़ी संख्या में सर्वर और सेवाएं हो सकती हैं जो प्रभावित हो सकती हैं, लेकिन कृपया, इसे वैसे भी करने का प्रयास करें। क्यूए काम महत्वपूर्ण हो सकता है, लेकिन कोशिश करें।

+0

मैंने इसे पहले पढ़ा है, और सोच रहा है कि आप विकास करते समय क्या करते हैं? क्या आप अपना विकास पीसी का समय यूटीसी में सेट करते हैं? –

+5

आप वीएम में विकसित होते हैं, और वीटीएस घड़ियों को यूटीसी में सेट करते हैं। अपने डेस्कटॉप पीसी पर कभी भी विकास न करें, यह कई तरीकों से दर्द है, खासकर यदि यह आपके कॉर्पोरेट आईटी विभाग द्वारा प्रबंधित एक विंडोज पीसी है जो समूह नीति के माध्यम से मनमाने ढंग से कॉन्फ़िगरेशन परिवर्तन करता है। – MarkR

+0

यह निश्चित रूप से ऐसा करने का तरीका है। अपना वीएम टाइमज़ोन सेट करने के बाद, MySQL सर्वर को पुनरारंभ करना सुनिश्चित करें। – DanO

0

आपको वांछित प्रारूप में डेटाटाइम परिणामों को प्रारूपित करने के लिए सेट टाइमस्टैम्प स्टेटमेंट का उपयोग करने की आवश्यकता होगी। इसका मतलब उन सभी प्रश्नों को बदलना होगा। sysdate() हालांकि इस का पालन नहीं करेंगे।

4

ऐसा करने का उचित तरीका है अपने सर्वर का समय क्षेत्र यूटीसी में बदलना, जैसा कि मार्कआर ने कहा था।

हालांकि, आपके वर्तमान सत्र के लिए समय क्षेत्र बदलने के लिए SET time_zone का उपयोग करना भी संभव है।

पुस्तिका से

:

वर्तमान सत्र समय क्षेत्र सेटिंग प्रदर्शन और समय मान है कि क्षेत्र के प्रति संवेदनशील हैं के भंडारण को प्रभावित करता है। यह() मान जैसे NOW कार्यों द्वारा प्रदर्शित या CURTIME()

12

गोटो /etc/mysql/my.cnf फ़ाइल और तहत [mysqld] अनुभाग

डिफ़ॉल्ट-समय-क्षेत्र की रेखा से नीचे इस ऐड = '00: 00'

फिर पुनः आरंभ आपका mysql। अब curtime() का चयन करें; जीएमटी समय दिखाता है।

+0

, होमब्रू mysql 5.6 यह काम नहीं करता है। – Jaap

7

यदि आपका चल रहा है उत्पादन सर्वर पर समय क्षेत्र बदलने या एक प्रमुख विन्यास सेटिंग अपडेट और mysql को पुन: प्रारंभ अवास्तविक और/या overkill लगता है, इस प्रयास करें:

CONVERT_TZ(NOW(), 'US/Pacific', 'UTC') 

कहाँ US/Pacific समय क्षेत्र आपके NOW() कॉल लौटा रहा है है समय

+0

ध्यान दें कि इसके लिए [टाइमज़ोन टेबल पॉप्युलेट होने की आवश्यकता है] (https://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html) – Dezza

संबंधित मुद्दे