Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

XML से SQL सर्वर डेटाटाइम में कनवर्ट करते समय मिलीसेकंड गलत है

हाँ, SQL Server राउंड टाइम 3.(3) मिलीसेकंड:

SELECT CAST(CAST('2009-01-01 00:00:00.000' AS DATETIME) AS BINARY(8))
SELECT CAST(CAST('2009-01-01 00:00:01.000' AS DATETIME) AS BINARY(8))

0x00009B8400000000
0x00009B840000012C

जैसा कि आप देख सकते हैं, ये DATETIME 1 . से भिन्न है दूसरा, और उनके द्विआधारी प्रतिनिधित्व 0x12C . द्वारा भिन्न होते हैं , यानी 300 दशमलव में।

ऐसा इसलिए है क्योंकि SQL Server time स्टोर करता है DATETIME . का हिस्सा 1/300 . की संख्या के रूप में मध्यरात्रि से दूसरी टिक।

यदि आप अधिक सटीकता चाहते हैं, तो आपको TIME स्टोर करने की आवश्यकता है एक अलग मूल्य के रूप में भाग। जैसे, स्टोर का समय DATETIME . के रूप में एक सेकंड के लिए पूर्णांकित किया गया है , और मिलीसेकंड या INTEGER . के रूप में आपको जो भी सटीकता चाहिए दूसरे कॉलम में।

यह आपको जटिल DATETIME . का उपयोग करने देगा अंकगणित, जैसे DATETIME . पर महीनों को जोड़ना या सप्ताह के दिनों को खोजना है, और आप केवल मिलीसेकंड जोड़ या घटा सकते हैं और परिणाम को .XXXXXX+HH:MM के रूप में जोड़ सकते हैं मान्य XML प्राप्त करने के लिए प्रतिनिधित्व।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल में मेरे डेटाटाइम फ़ील्ड से केवल समय अपडेट करें

  2. ऑपरेंड टाइप क्लैश:वर्चर वर्चर (50) के साथ असंगत है जो एन्क्रिप्टेड डेटाबेस में डालने की कोशिश कर रहा है

  3. मैं टी-एसक्यूएल में एक स्ट्रिंग से विस्तारित ASCII वर्ण कैसे निकालूं?

  4. ALTER TABLE कथन SQL सर्वर में FOREIGN KEY बाधा के साथ विरोध करता है - SQL Sever / TSQL ट्यूटोरियल पार्ट 69

  5. FORMAT () का उपयोग करके SQL सर्वर में किसी संख्या पर सशर्त स्वरूपण कैसे लागू करें