आपको MySQL संस्करण 5.6.4 पर या बाद में आंशिक-दूसरी बार डेटाटाइप के साथ कॉलम घोषित करने की आवश्यकता है। निश्चित नहीं है कि आपके पास सही संस्करण है? कोशिश करो SELECT NOW(3)
। यदि आपको कोई त्रुटि मिलती है, तो आपके पास सही संस्करण नहीं है।
उदाहरण के लिए, DATETIME(3)
आपको अपने टाइमस्टैम्प में मिलीसेकंड रिज़ॉल्यूशन TIMESTAMP(6)
देगा , और आपको * निक्स-स्टाइल टाइमस्टैम्प पर माइक्रोसेकंड रिज़ॉल्यूशन देगा।
इसे पढ़ें: https://dev.mysql.com/doc/refman/8.0/en/fractional-seconds.html
NOW(3)
मिलिसेकंड परिशुद्धता के साथ आपके MySQL सर्वर के ऑपरेटिंग सिस्टम से आपको वर्तमान समय देगा।
यदि आपके पास यूनिक्स युग के बाद से कई मिलीसेकंड हैं , तो DATETIME (3%) मान प्राप्त करने के लिए इसे आज़माएं
FROM_UNIXTIME(ms * 0.001)
उदाहरण के लिए, जावास्क्रिप्ट टाइमस्टैम्प को यूनिक्स युग के बाद से मिलीसेकंड में दर्शाया गया है ।
(ध्यान दें कि MySQL आंतरिक आंशिक अंकगणितीय, जैसे * 0.001
, हमेशा IEEE754 डबल सटीक फ़्लोटिंग पॉइंट के रूप में संभाला जाता है, इसलिए यह संभावना नहीं है कि सूर्य के सफेद बौने स्टार बनने से पहले आप सटीक खो देंगे।)
यदि आप MySQL के पुराने संस्करण का उपयोग कर रहे हैं और आपको उप-समय सटीक की आवश्यकता है, तो आपका सबसे अच्छा तरीका अपग्रेड करना है। और कुछ भी आपको गन्दा काम करने के लिए मजबूर करेगा।
यदि, किसी कारण से आप अपग्रेड नहीं कर सकते हैं, तो आप जावास्क्रिप्ट टाइमस्टैम्प को स्टोर करने के लिए कॉलम BIGINT
या DOUBLE
कॉलम का उपयोग करने पर विचार कर सकते हैं जैसे कि वे संख्याएं थीं। FROM_UNIXTIME(col * 0.001)
अभी भी ठीक काम करेगा। यदि आपको ऐसे कॉलम में स्टोर करने के लिए वर्तमान समय की आवश्यकता है, तो आप उपयोग कर सकते हैंUNIX_TIMESTAMP() * 1000