MySQL

2013-02-13 5 views
6

में UNIX_TIMESTAMP और NOW() के बीच अंतर मेरे पास एक ब्लॉग है जहां उपयोगकर्ता टिप्पणी कर सकते हैं। मैं उस समय को सम्मिलित करता हूं जिस पर उन्होंने NOW() का उपयोग करके एक टिप्पणी पोस्ट की है और फिर उस समय को दिखाने के लिए date('j M Y', stored timestamp) का उपयोग करें।MySQL

मुझे पता है कि अब (0) locatime of the end user or the localtime at my server लौटाता है। क्या स्थानीय उपयोगकर्ताओं की टिप्पणी करने के लिए से UNIX_TIMESTAMP का उपयोग करना बेहतर है?

+0

[इस] (http://stackoverflow.com/questions/9613944/timestamp-means) तो अब मैं कैसे उपयोगकर्ता के देश जावास्क्रिप्ट का उपयोग कर की गणना करते – RMH

उत्तर

3

फ़ंक्शन NOW() आपके MySQL सर्वर के समय क्षेत्र द्वारा निर्धारित स्वरूपित दिनांक-समय स्ट्रिंग उत्पन्न करता है।

हालांकि, UNIX_TIMESTAMP() का उपयोग करके समय स्टोर करना बेहतर होगा, जो जीएमटी में व्यक्त किया गया है। ऐसा करने से इसे विज़िटर के देश के अनुसार प्रारूपित करना आसान हो जाता है (उदाहरण के लिए जावास्क्रिप्ट का उपयोग करना)।

यदि आप अभी भी DATETIME कॉलम का उपयोग करना चाहते हैं, तो आप UTC_TIMESTAMP() का उपयोग करके समय स्टोर कर सकते हैं (यह NOW() जैसी तारीख को प्रारूपित करता है लेकिन इसे यूटीसी में व्यक्त करता है); इसे अन्य सभी पहलुओं में कम या ज्यादा काम करना चाहिए।

+0

मदद कर सकता है। मुझे जीएमटी की गणना करने के बारे में पता है, लेकिन देश @ जैक – sanchitkhanna26

+0

कैसे उपयोगकर्ता के देश 'दिनांक ('जे एम वाई', संग्रहीत टाइमस्टैम्प) के अनुसार तिथि प्रिंट करेगा,' – sanchitkhanna26

+0

'UNIX_TIMESTAMP()' एक पूर्णांक देता है। क्या आप 'INT' के पक्ष में 'DATETIME' कॉलम डंपिंग का सुझाव दे रहे हैं? –

1

चलो देखते हैं कि कौन सी मैन्युअल में क्या कहना है के बारे में NOW():

रिटर्न में एक मूल्य के रूप में वर्तमान दिनांक और समय 'YYYY-MM-DD HH: MM: SS' या YYYYMMDDHHMMSS.uuuuuu प्रारूप, इस पर निर्भर करता है कि फ़ंक्शन स्ट्रिंग या न्यूमेरिक संदर्भ में उपयोग किया गया है या नहीं। मान वर्तमान समय क्षेत्र में व्यक्त किया गया है।

... और UNIX_TIMESTAMP():

कोई तर्क के साथ कॉल करते हैं, तो एक के रूप में ( '1970-01-01 00:00:00' यूटीसी के बाद से सेकंड) एक यूनिक्स टाइमस्टैम्प रिटर्न हस्ताक्षरित पूर्णांक। यदि UNIX_TIMESTAMP() को दिनांक तर्क के साथ बुलाया जाता है, तो यह को '1970-01-01-01 00:00:00' यूटीसी के बाद से सेकंड के रूप में तर्क देता है। दिनांक एक DATE स्ट्रिंग, एक DATETIME स्ट्रिंग, एक TIMESTAMP, या प्रारूप YYMMDD या YYYYMMDD प्रारूप में एक संख्या हो सकती है। सर्वर वर्तमान समय जोन में मान के रूप में दिनांकित करता है और इसे यूटीसी में एक आंतरिक मान में परिवर्तित करता है।

तो, शुरू करने के लिए, वे अलग-अलग चीजें वापस कर देते हैं: एक पूर्ण तिथि बनाम एक पूर्ण दिनांक।

  1. स्टोर उसी प्रारूप में सभी तिथियों (या तो यूटीसी या सर्वर के समय क्षेत्र)
  2. उपयोगकर्ता के समय क्षेत्र प्राप्त उपयोगकर्ता के समय में
  3. प्रदर्शन संग्रहीत की तारीख:

    आप वास्तव में तीन सुविधाओं प्राप्त करने की आवश्यकता जोन

Date and Time functions अध्याय उपलब्ध कार्यों का सारांश प्रदान करता है। यदि आप यूटीसी में तिथियां स्टोर करना चाहते हैं तो आप UTC_TIMESTAMP() के लिए जाएंगे।यदि आप सर्वर के समय क्षेत्र का उपयोग करना चाहते हैं तो आप NOW() का उपयोग कर सकते हैं। और रूपांतरण करने के लिए CONVERT_TZ() है।

MySQL, हालांकि, आपको # 2 के साथ मदद नहीं करेगा। आपको उपयोगकर्ता से पूछने या उपयोगकर्ता की घड़ी पढ़ने के लिए जावास्क्रिप्ट का उपयोग करने की आवश्यकता है ताकि आप सर्वर पर भेज सकें ताकि आप अनुमान लगा सकें (यदि आप नहीं पूछते हैं कि आपको हमेशा अनुमान लगाने की आवश्यकता होगी क्योंकि आमतौर पर कई समय क्षेत्र साझा होते हैं जो समान साझा करते हैं दिए गए तत्काल में समय)।

+0

धन्यवाद @ अलवरी जी विकारियो – sanchitkhanna26

5

MySQL UNIX_TIMESTAMP() '1970-01-01 00:00:00' यूटीसी के बाद से सेकंड में एक यूनिक्स टाइमस्टैम्प रिटर्न एक अहस्ताक्षरित पूर्णांक के रूप में कोई तर्क UNIT_TIMESTAMP().

तारीख तर्क के साथ प्रयोग किया जब इस समारोह के साथ पारित कर रहे हैं, यह '1 9 70-01-01 00:00:00' यूटीसी के बाद से सेकंड में एक हस्ताक्षरित पूर्णांक के रूप में तर्क का मान देता है।

तर्क एक दिनांक, दिनांक, TIMESTAMP या YYYYMMDD या YYMMDD में एक संख्या हो सकता है।

नोट: चूंकि UNIX_TIMESTAMP() वर्तमान डेटाटाइम पर काम करता है, तो आपका आउटपुट दिखाए गए आउटपुट से भिन्न हो सकता है।

NOW() वर्तमान दिनांक और समय देता है।

SELECT NOW(), UNIX_TIMESTAMP(NOW()); 
+---------------------+-----------------------+ 
| NOW()    | UNIX_TIMESTAMP(NOW()) | 
+---------------------+-----------------------+ 
| 2011-10-03 10:22:37 |   1317666157 | 
+---------------------+-----------------------+