datetime - क्या मुझे MySQL में डेटाटाइम या टाइमस्टैम्प डेटा प्रकार का उपयोग करना चाहिए?




timestamp sqldatatypes (25)

क्या आप datetime या datetime फ़ील्ड का उपयोग करने की सलाह देंगे, और क्यों (MySQL का उपयोग कर)?

मैं सर्वर के पक्ष में PHP के साथ काम कर रहा हूँ।


Answers

MySQL में ध्यान देने योग्य है कि आप अपने टेबल कॉलम बनाते समय नीचे की पंक्तियों के साथ कुछ उपयोग कर सकते हैं:

on update CURRENT_TIMESTAMP

यह आपके द्वारा एक पंक्ति को संशोधित करने वाले प्रत्येक उदाहरण पर समय अपडेट करेगा और कभी-कभी अंतिम संपादन जानकारी संग्रहीत करने के लिए बहुत उपयोगी होता है। यह केवल टाइमस्टैम्प के साथ काम करता है, हालांकि डेटाटाइम नहीं।


वास्तव में आवेदन पर निर्भर करता है।

संघई में नियुक्ति के लिए न्यूयॉर्क में किसी सर्वर द्वारा एक टाइमस्टैम्प सेट करने पर विचार करें। अब जब उपयोगकर्ता संघई में जुड़ता है, तो वह टोक्यो में एक दर्पण सर्वर से एक ही नियुक्ति टाइमस्टैम्प तक पहुंचता है। वह टोक्यो समय में नियुक्ति को देखेगा, जो मूल न्यूयॉर्क समय से ऑफसेट होगा।

तो ऐसे मानों के लिए जो उपयोगकर्ता समय को नियुक्ति या अनुसूची की तरह दर्शाते हैं, डेटाटाइम बेहतर है। यह उपयोगकर्ता को सर्वर सेटिंग्स के बावजूद वांछित सटीक दिनांक और समय को नियंत्रित करने की अनुमति देता है। सेट समय सेट समय है, सर्वर के समय क्षेत्र से प्रभावित नहीं है, उपयोगकर्ता का समय क्षेत्र, या डेलाइट बचत समय के तरीके में परिवर्तनों द्वारा गणना की जाती है (हाँ यह बदलती है)।

दूसरी ओर, उन मूल्यों के लिए जो भुगतान समय, तालिका संशोधन या लॉगिंग जैसे सिस्टम समय का प्रतिनिधित्व करते हैं, हमेशा टाइमस्टैम्प का उपयोग करें। सर्वर को किसी अन्य समय क्षेत्र में ले जाकर या विभिन्न समय क्षेत्र में सर्वर के बीच तुलना करते समय सिस्टम प्रभावित नहीं होगा।

टाइमस्टैम्प डेटाबेस पर भी हल्का है और तेजी से अनुक्रमित है।


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

$date  = $item['pubdate']; (etc ...)
$unix_now = time();
$result = strtotime($date, $unix_now);
$unix_diff_min = (($unix_now  - $result) / 60);
$min = round($unix_diff_min);

MySQL 5 और बाद में, TIMESTAMP मानों को वर्तमान समय क्षेत्र से भंडारण के लिए यूटीसी में परिवर्तित कर दिया जाता है, और पुनर्प्राप्ति के लिए यूटीसी से वर्तमान समय क्षेत्र में वापस परिवर्तित किया जाता है। (यह केवल TIMESTAMP डेटा प्रकार के लिए होता है, कि अन्य प्रकार के लिए जैसे DATETIME।)

डिफ़ॉल्ट रूप से, प्रत्येक कनेक्शन के लिए वर्तमान समय क्षेत्र सर्वर का समय होता है। समय क्षेत्र को प्रति कनेक्शन आधार पर सेट किया जा सकता है, जैसा कि MySQL सर्वर समय क्षेत्र समर्थन में वर्णित है।


टाइमस्टैम्प और डेटाटाइम के बीच एक और अंतर टाइमस्टैम्प में है, आप डिफ़ॉल्ट रूप से डिफ़ॉल्ट मान नहीं दे सकते हैं।


मैं टाइमस्टैम्प का उपयोग करना पसंद करता हूं ताकि सबकुछ एक सामान्य कच्चे प्रारूप में रखा जा सके और PHP कोड में या आपके SQL क्वेरी में डेटा स्वरूपित किया जा सके। ऐसे कई उदाहरण हैं जहां सब कुछ सादे सेकेंड में रखने के लिए आपके कोड में आसान होता है।


2016 + : जो मैं सलाह देता हूं वह है कि अपना MySQL टाइमज़ोन यूटीसी पर सेट करें और DATETIME का उपयोग करें:

कोई भी हालिया फ्रंट-एंड फ्रेमवर्क (कोणीय 1/2, प्रतिक्रिया, वू, ...) आसानी से और स्वचालित रूप से आपके यूटीसी डेटाटाइम को स्थानीय समय में परिवर्तित कर सकता है।

इसके अतिरिक्त:

(जब तक आप अपने सर्वर के टाइमज़ोन को बदलने की संभावना नहीं रखते)

AngularJs के साथ उदाहरण

// back-end: format for angular within the sql query
SELECT DATE_FORMAT(my_datetime, "%Y-%m-%dT%TZ")...

// font-end Output the localised time
{{item.my_datetime | date :'medium' }}

यहां उपलब्ध सभी स्थानीय समय प्रारूप: https://docs.angularjs.org/api/ng/filter/date


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

विचार करने के लायक एक और बात:

यदि आप कोई एप्लिकेशन बना रहे हैं, तो आप कभी नहीं जानते कि लाइन के नीचे आपके डेटा का उपयोग कैसे किया जा सकता है। यदि आप अपने डेटा सेट में रिकॉर्ड्स के समूह की तुलना करते हैं, तो कहें, तीसरे पक्ष के एपीआई से वस्तुओं का एक गुच्छा कहें, और कहें, उन्हें क्रमिक क्रम में रखें, आपको खुशी होगी अपनी पंक्तियों के लिए यूनिक्स टाइमस्टैम्प। यहां तक ​​कि यदि आप MySQL टाइमस्टैम्प का उपयोग करने का निर्णय लेते हैं, तो यूनिक्स टाइमस्टैम्प को बीमा के रूप में स्टोर करें।


टाइमस्टैम्प डेटा प्रकार दिनांक और समय स्टोर करता है, लेकिन यूटीसी प्रारूप में, वर्तमान टाइमज़ोन प्रारूप में डेटाटाइम के रूप में नहीं है। और जब आप डेटा लाते हैं, टाइमस्टैंप फिर से चालू समय क्षेत्र में परिवर्तित हो जाता है।

तो मान लीजिए कि आप संयुक्त राज्य अमेरिका में हैं और एक सर्वर से डेटा प्राप्त कर रहे हैं जिसमें संयुक्त राज्य अमेरिका का समय क्षेत्र है। फिर आपको संयुक्त राज्य अमेरिका के समय क्षेत्र के अनुसार तिथि और समय मिल जाएगा। जब इसकी पंक्ति अपडेट हो जाती है तो टाइमस्टैम्प डेटा प्रकार कॉलम हमेशा स्वचालित रूप से अपडेट हो जाता है। तो यह ट्रैक करने के लिए उपयोगी हो सकता है कि पिछली बार किसी विशेष पंक्ति को अपडेट किया गया था।

अधिक जानकारी के लिए आप ब्लॉग पोस्ट टाइमस्टैम्प बनाम डेटाटाइम पढ़ सकते हैं।


TIMESTAMPको 4 बाइट की आवश्यकता होती है, जबकि एक DATETIMEको 8 बाइट की आवश्यकता होती है।



टाइमस्टैम्प हमेशा यूटीसी में होता है (यानी, यूटीसी में 1 9 70-01-01 के बाद से सेकंड समाप्त हो गया है), और आपका MySQL सर्वर सर्वर टाइमज़ोन के लिए दिनांक / समय में स्वतः परिवर्तित हो जाता है। लंबी अवधि में, TIMESTAMP जाने का तरीका है क्योंकि आप जानते हैं कि आपका अस्थायी डेटा हमेशा यूटीसी में होगा। उदाहरण के लिए, यदि आप किसी भिन्न सर्वर पर माइग्रेट करते हैं या आप अपने सर्वर पर टाइमज़ोन सेटिंग्स बदलते हैं तो आप अपनी तिथियों को पेंच नहीं करेंगे।


मैं न तो एक DATETIME या एक TIMESTAMP फ़ील्ड का उपयोग करने की सलाह देते हैं। यदि आप पूरे दिन (जन्मदिन की तरह) का प्रतिनिधित्व करना चाहते हैं, तो DATE के प्रकार का उपयोग करें, लेकिन यदि आप उससे अधिक विशिष्ट हैं, तो संभवतः आप एक वास्तविक क्षण को रिकॉर्ड करने में रुचि रखते हैं क्योंकि एक इकाई के विपरीत समय (दिन, सप्ताह, महीना, वर्ष)। DATETIME या TIMESTAMP का उपयोग करने के बजाय, एक बिगिनट का उपयोग करें, और युग के बाद मिलीसेकंड की संख्या को स्टोर करें (System.currentTimeMillis () यदि आप जावा का उपयोग कर रहे हैं)। इसमें कई फायदे हैं:

  1. आप विक्रेता लॉक-इन से बचें। काफी अधिक डेटाबेस प्रत्येक अपेक्षाकृत समान फैशन में पूर्णांक का समर्थन करता है। मान लीजिए कि आप दूसरे डेटाबेस में जाना चाहते हैं। क्या आप MySQL के DATETIME मानों के बीच अंतर और ओरेकल को परिभाषित करने के बारे में चिंता करना चाहते हैं? MySQL के विभिन्न संस्करणों में से भी, TIMESTAMPS के पास परिशुद्धता का एक अलग स्तर है। यह केवल हाल ही में था कि MySQL टाइमस्टैम्प में मिलीसेकंड का समर्थन करता है।
  2. कोई टाइमज़ोन समस्या नहीं है। अलग-अलग डेटा प्रकारों के साथ टाइमज़ोन के साथ क्या होता है, इस पर कुछ अंतर्दृष्टिपूर्ण टिप्पणियां दी गई हैं। लेकिन क्या यह सामान्य ज्ञान है, और क्या आपके सहकर्मियों को यह जानने के लिए समय लगेगा? दूसरी तरफ, एक बिगिनट को java.util.Date में बदलना गड़बड़ करना बहुत मुश्किल है। बिगिनट का उपयोग करने से टाइमज़ोन के रास्ते के साथ कई मुद्दों का सामना करना पड़ता है।
  3. श्रेणियों या परिशुद्धता के बारे में कोई चिंता नहीं। भविष्य की तारीख सीमाओं से कम कटौती के बारे में आपको चिंता करने की ज़रूरत नहीं है (TIMESTAMP केवल 2038 तक जाता है)।
  4. थर्ड-पार्टी टूल एकीकरण। एक पूर्णांक का उपयोग करके, यह डेटाबेस के साथ इंटरफेस करने के लिए तीसरे पक्ष के उपकरण (जैसे EclipseLink) के लिए तुच्छ है। प्रत्येक तीसरे पक्ष के उपकरण को "डेटाटाइम" की समान समझ नहीं होगी क्योंकि MySQL करता है। हाइबरनेट में कोशिश करना और पता लगाना चाहते हैं कि क्या आपको java.sql.TimeStamp या java.util.Date ऑब्जेक्ट का उपयोग करना चाहिए यदि आप इन कस्टम डेटा प्रकारों का उपयोग कर रहे हैं? अपने मूल डेटा प्रकारों का उपयोग करना तीसरे पक्ष के उपकरण तुच्छ के साथ उपयोग करते हैं।

यह समस्या निकटता से संबंधित है कि आपको डेटाबेस में धन मूल्य (यानी $ 1.99) कैसे स्टोर करना चाहिए। क्या आप एक दशमलव, या डेटाबेस के मनी प्रकार का उपयोग करना चाहिए, या सभी को सबसे खराब? इन विकल्पों में से 3 विकल्प भयानक हैं, ऊपर सूचीबद्ध कारणों में से कई के लिए। समाधान BIGINT का उपयोग करके सेंट में धन के मूल्य को संग्रहीत करना है, और फिर जब आप उपयोगकर्ता को मान प्रदर्शित करते हैं तो सेंट को डॉलर में परिवर्तित करें। डेटाबेस का काम डेटा स्टोर करना है, और उस डेटा को घुसपैठ नहीं करना है। डेटाबेस में देखे जाने वाले इन सभी फैंसी डेटा-प्रकार (विशेष रूप से ओरेकल) थोड़ा जोड़ते हैं, और आपको विक्रेता लॉक-इन के लिए सड़क से शुरू करते हैं।


TIMESTAMP DATETIME के ​​लिए 4 बाइट बनाम 8 बाइट्स है।

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

लेकिन स्क्रोनसाइड की तरह कहा गया है कि इसकी वर्ष 1 9 70 की निचली सीमा है। भविष्य में ऐसा कुछ भी हो सकता है जो कि हो सकता है;)


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

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

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

तो, संक्षेप में, मैं टाइमस्टैम्प के इस फायदे का महत्व देता हूं:

  • अंतरराष्ट्रीय (बहुकालिक क्षेत्र) ऐप्स पर उपयोग करने के लिए तैयार है
  • समय क्षेत्र के बीच आसान माइग्रेशन
  • दुविधाओं की गणना करने के लिए बहुत आसान है (बस टाइमस्टैम्प दोनों घटाएं)
  • ग्रीष्मकालीन समय अवधि में / बाहर तिथियों के बारे में कोई चिंता नहीं

इन सभी कारणों से, मैं यूटीसी और टाइमस्टैम्प फ़ील्ड्स चुनता हूं जहां सकारात्मक है। और मैं सिरदर्द से बचता हूं;)


  1. TIMESTAMP DATETIME के ​​लिए चार बाइट बनाम आठ बाइट्स है।

  2. टाइमस्टैम्प डेटाबेस पर भी हल्का है और तेजी से अनुक्रमित है।

  3. DATETIME प्रकार का उपयोग तब किया जाता है जब आपको उन मानों की आवश्यकता होती है जिनमें दिनांक और समय दोनों जानकारी होती है। MySQL 'YYYY-MM-DD HH: MM: SS' प्रारूप में DATETIME मानों को पुनर्प्राप्त और प्रदर्शित करता है। समर्थित श्रेणी '1000-01-01 00:00:00' से '99 99-12-31 23:59:59' है।

TIMESTAMP डेटा प्रकार की '1970-01-01 00:00:01' की एक श्रृंखला है 'यूटीसी' 2038-01-09 03:14:07 'यूटीसी। MySQL संस्करण और SQL मोड सर्वर के चलते SQL मोड के आधार पर इसमें अलग-अलग गुण हैं।

  1. DATETIME स्थिर है जबकि TIMESTAMP टाइम_ज़ोन सेटिंग द्वारा प्रभावित होता है।

मैं हमेशा पंक्ति मेटाडेटा (दिनांक निर्मित या संशोधित) के अलावा किसी अन्य चीज़ के लिए DATETIME फ़ील्ड का उपयोग करता हूं।

जैसा dev.mysql.com/doc/refman/5.1/en/datetime.html MySQL दस्तावेज़ में dev.mysql.com/doc/refman/5.1/en/datetime.html है:

DATETIME प्रकार का उपयोग तब किया जाता है जब आपको उन मानों की आवश्यकता होती है जिनमें दिनांक और समय दोनों जानकारी होती है। MySQL 'YYYY-MM-DD HH: MM: SS' प्रारूप में DATETIME मानों को पुनर्प्राप्त और प्रदर्शित करता है। समर्थित श्रेणी '1000-01-01 00:00:00' से '99 99-12-31 23:59:59' है।

...

TIMESTAMP डेटा प्रकार की '1970-01-01 00:00:01' की एक श्रृंखला है 'यूटीसी' 2038-01-09 03:14:07 'यूटीसी। MySQL संस्करण और SQL मोड सर्वर के चलते SQL मोड के आधार पर इसमें अलग-अलग गुण हैं।

आप सामान्य उपयोग में TIMESTAMPs पर निचली सीमा को हिट करने की संभावना रखते हैं - उदाहरण के लिए जन्मदिन संग्रहित करना।


मेरे अनुभवों से, यदि आप एक दिनांक फ़ील्ड चाहते हैं जिसमें सम्मिलन केवल एक बार होता है और आप उस विशेष फ़ील्ड पर कोई अपडेट या कोई अन्य कार्रवाई नहीं करना चाहते हैं, तो डेट समय के साथ जाएं।

उदाहरण के लिए, एक पंजीकरण तालिका फ़ील्ड के साथ एक user तालिका पर विचार user । उस user तालिका में, यदि आप किसी विशेष उपयोगकर्ता के अंतिम लॉग इन समय को जानना चाहते हैं, तो टाइमस्टैम्प प्रकार के फ़ील्ड के साथ जाएं ताकि फ़ील्ड अपडेट हो जाए।

यदि आप phpMyAdmin से तालिका बना रहे हैं तो एक पंक्ति अद्यतन होने पर डिफ़ॉल्ट सेटिंग टाइमस्टैम्प फ़ील्ड को अपडेट कर देगी। यदि आपका टाइमस्टैम्प दायर किया गया है तो पंक्ति अद्यतन के साथ अद्यतन नहीं हो रहा है, तो आप टाइमस्टैम्प फ़ील्ड को स्वत: अद्यतन करने के लिए निम्न क्वेरी का उपयोग कर सकते हैं।

ALTER TABLE your_table
      MODIFY COLUMN ts_activity TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

मैं BIGINTयूटीसी भंडारण करते समय केवल हस्ताक्षरित का उपयोग करता हूं ...

जिसे तब भी PHP में स्थानीय समय में समायोजित किया जा सकता है।

के DATETIMEसाथ चयन करने के लिए FROM_UNIXTIME( integer_timestamp_column )

एक स्पष्ट रूप से उस कॉलम पर एक इंडेक्स सेट करना चाहिए, अन्यथा कोई अग्रिम नहीं होगा।


मुख्य अंतर यह है कि DATETIME स्थिर है जबकि TIMESTAMP time_zone सेटिंग से प्रभावित होता है।

तो यह केवल तभी महत्वपूर्ण है जब आपके पास हो - या भविष्य में हो सकता है - समय क्षेत्र में क्लस्टर को सिंक्रनाइज़ किया गया हो।

सरल शब्दों में: यदि मेरे पास ऑस्ट्रेलिया में डेटाबेस है, और अमेरिका में डेटाबेस को सिंक्रनाइज़ / पॉप्युलेट करने के लिए उस डेटाबेस का डंप लें, तो TIMESTAMP नए समय क्षेत्र में ईवेंट के वास्तविक समय को प्रतिबिंबित करने के लिए अपडेट होगा, जबकि DATETIME होगा अभी भी एयू समय क्षेत्र में घटना का समय प्रतिबिंबित करता है

DATETIME का एक शानदार उदाहरण उपयोग किया जा रहा है जहां TIMESTAMP का उपयोग किया जाना चाहिए फेसबुक में, जहां उनके सर्वर कभी भी निश्चित नहीं हैं कि समय क्षेत्र में समय-समय पर क्या हुआ। एक बार जब मैं बातचीत कर रहा था जिसमें समय कहा गया था कि संदेश वास्तव में संदेश भेजने से पहले संदेश का जवाब दे रहा था। (यह निश्चित रूप से, मैसेजिंग सॉफ़्टवेयर में खराब समय क्षेत्र अनुवाद के कारण भी हो सकता है अगर सिंक्रनाइज़ किए जाने के बजाय समय पोस्ट किया जा रहा था।)


timestamp फ़ील्ड timestamp फ़ील्ड का एक विशेष मामला है। आप विशेष गुण रखने के लिए timestamp कॉलम बना सकते हैं; इसे या तो बनाने और / या अपडेट पर अपडेट करने के लिए सेट किया जा सकता है।

"बड़े" डेटाबेस शब्दों में, timestamp में कुछ विशेष-मामले ट्रिगर्स हैं।

जो सही है वह पूरी तरह से निर्भर करता है कि आप क्या करना चाहते हैं।


DATETIME, TIMESTAMP और DATE के बीच तुलना

वह [। फ्रैक्शन] क्या है?

  • एक डेटाटाइम या TIMESTAMP मान में माइक्रोसॉन्ड (6 अंक) परिशुद्धता तक एक पिछला अंशकालिक सेकंड भाग शामिल हो सकता है। विशेष रूप से, किसी DATETIME या TIMESTAMP कॉलम में डाले गए मान में कोई भी fractional भाग त्यागने के बजाए संग्रहीत किया जाता है। यह निश्चित रूप से वैकल्पिक है।

सूत्रों का कहना है:


जब आप तालिका पर अद्यतन विवरण करते हैं तो टाइमस्टैम्प बदलना सावधान रहें। यदि आपके पास कॉलम 'नाम' (वर्कर), 'आयु' (int), और 'Date_Added' (टाइमस्टैम्प) वाली तालिका है और आप निम्न DML कथन चलाते हैं

UPDATE table
SET age = 30

तो आपके 'Date_Added' कॉलम में प्रत्येक एकल मान को वर्तमान टाइमस्टैम्प में बदल दिया जाएगा।


मैं यह निर्णय एक अर्थपूर्ण आधार पर करता हूं।

जब मैं समय में एक (अधिक या कम) निश्चित बिंदु रिकॉर्ड करने की आवश्यकता होती हूं तो मैं टाइमस्टैम्प का उपयोग करता हूं। उदाहरण के लिए जब डेटाबेस में एक रिकॉर्ड डाला गया था या जब कुछ उपयोगकर्ता कार्रवाई हुई थी।

मैं डेटटाइम फ़ील्ड का उपयोग करता हूं जब तिथि / समय सेट किया जा सकता है और मनमाने ढंग से बदल दिया जा सकता है। उदाहरण के लिए जब कोई उपयोगकर्ता बाद में परिवर्तन नियुक्तियों को सहेज सकता है।


One other thing, make sure the servers have the up to date daylight savings patch applied.

We had a situation last year where our times were consistently out by one hour for a three-week period for North American users, even though we were using a UTC based system.

It turns out in the end it was the servers. They just needed an up-to-date patch applied ( Windows Server 2003 ).





mysql datetime timestamp sqldatatypes