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

आप टी-एसक्यूएल में डेटाटाइम से सिर्फ तारीख कैसे निकालते हैं?

सबसे अच्छा तरीका है:

   SELECT DATEADD(day, DATEDIFF(Day, 0, @ADate), 0) 

ऐसा इसलिए है क्योंकि आंतरिक रूप से, SQL सर्वर सभी तिथियों को दो पूर्णांकों के रूप में संग्रहीत करता है, जिनमें से पहला 1 जनवरी 1900 से ****दिनों की संख्या*** है। (दूसरा एक समय भाग है, जिसे संख्या के रूप में संग्रहीत किया जाता है) मध्यरात्रि के बाद से सेकंड। (SmallDateTime . के लिए सेकंड s, या मिलीसेकंड DateTime . के लिए s)
उपरोक्त अभिव्यक्ति का उपयोग करना बेहतर है क्योंकि यह सभी रूपांतरणों से बचता है, किसी भी प्रसंस्करण को किए बिना दिनांक आंतरिक प्रतिनिधित्व में उस पहले पूर्णांक को सीधे पढ़ना और एक्सेस करना ... उपरोक्त अभिव्यक्ति में दो शून्य (जो 1 का प्रतिनिधित्व करते हैं) जनवरी 1900), का उपयोग सीधे प्रसंस्करण या रूपांतरण के लिए भी किया जाता है, क्योंकि वे 1 जनवरी 1900 की तारीख के एसक्यूएल सर्वर के आंतरिक प्रतिनिधित्व से बिल्कुल मेल खाते हैं (एक पूर्णांक के रूप में) ..

*टिप्पणी। दरअसल, एक तारीख से दूसरी तारीख तक जाने के लिए आपको जितनी तारीख की सीमाएं (मध्यरात्रि) पार करनी पड़ती हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. लिंक से SQL - अद्यतन करने में विफल

  2. एसक्यूएल सर्वर में सबक्वायरी का उपयोग कर अद्यतन क्वेरी

  3. रिकर्सिव सेल्फ-जॉइन करने का सबसे आसान तरीका?

  4. सभी तालिकाओं, संग्रहीत प्रक्रियाओं, ट्रिगर्स, बाधाओं और सभी निर्भरताओं को एक sql कथन में छोड़ दें

  5. SQL सर्वर (T-SQL) में एक महीने के नाम को महीने की संख्या में बदलें