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

मिलीसेकंड के साथ डेटाटाइम फ़ील्ड पर क्वेरी SQL सर्वर में गलत परिणाम देती है

SQL Server समय भाग को 1/300 . की संख्या के रूप में संग्रहीत करता है मध्यरात्रि से दूसरी लंबी टिक।

23:59:59.999 निकटतम टिक पर गोल हो जाता है जो होता है 00:00:00.000 अगले दिन की।

SELECT  CAST(CAST('2009-12-01 00:00:00.000' AS DATETIME) AS BINARY(8)),
        CAST(CAST('2009-12-01 23:59:59.997' AS DATETIME) AS BINARY(8)),
        CAST(CAST('2009-12-01 23:59:59.999' AS DATETIME) AS BINARY(8))



0x00009B8F 00000000    0x00009B8F 018B81FF    0x00009B90 00000000

पहले मान में, दिनांक भाग, 0x9B8F (39823 ) Jan 1st, 1900 . के बाद से दिनों की संख्या है , और समय भाग, 0 , मध्यरात्रि के बाद से टिकों की संख्या है।

दूसरे मान में, 0x018B81FF (25919999 , या 24 * 60 * 60 * 300 - 1 ) मध्यरात्रि के बाद से टिकों की अधिकतम संभव संख्या है।

अंत में, तीसरे मान में 0 . है समय भाग में और दिनांक भाग में एक की वृद्धि हुई।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NHibernate + डिफ़ॉल्ट getdate () कॉलम

  2. SQL सर्वर एजेंट शेड्यूल संशोधित करें (T-SQL)

  3. SQL सर्वर (T-SQL उदाहरण) में 'डेटाटाइमऑफ़सेट' को 'डेटाटाइम' में बदलें

  4. पासवर्ड कॉलम को एन्क्रिप्ट कैसे करें

  5. जावा से SQL सर्वर कॉम्पैक्ट संस्करण (CE) का उपयोग कैसे करें?