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

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

कड़ाई से, विधि a कम से कम संसाधन गहन है:

a) select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)

एक ही कुल अवधि के लिए कम सीपीयू गहन साबित हुआ, किसी के हाथों पर बहुत अधिक समय के साथ एक लाख पंक्तियां:दिनांक + समय से दिनांक प्राप्त करने के लिए SQL सर्वर में सबसे प्रभावी तरीका?

मैंने इसी तरह के परिणामों के साथ कहीं और भी इसी तरह का परीक्षण देखा।

मुझे DATEADD/DATEDIFF पसंद है क्योंकि:

  • varchar भाषा/डेटफॉर्मेट मुद्दों के अधीन है
    उदाहरण:मेरी CASE अभिव्यक्ति गैर-निर्धारक क्यों है?
  • फ्लोट आंतरिक संग्रहण पर निर्भर करता है
  • यह "0" आधार को बदलकर महीने के पहले दिन, कल आदि के लिए काम करता है

संपादित करें, अक्टूबर 2011

SQL Server 2008+ के लिए, आप date पर CAST कर सकते हैं यानी CAST(getdate() AS date) . या बस date का उपयोग करें डेटाटाइप इसलिए नहीं time हटाने के लिए।

संपादित करें, जनवरी 2012

यह कितना लचीला है इसका एक काम किया उदाहरण:एसक्यूएल सर्वर में गोल समय या तारीख के आंकड़े की गणना करने की आवश्यकता है

संपादित करें, मई 2012

इसका उपयोग WHERE क्लॉज और इसी तरह बिना सोचे-समझे न करें:किसी कॉलम में फंक्शन या CAST जोड़ने से इंडेक्स का उपयोग अमान्य हो जाता है। यहां नंबर 2 देखें सामान्य SQL प्रोग्रामिंग गलतियाँ

अब, इसमें बाद के SQL सर्वर ऑप्टिमाइज़र संस्करणों का एक उदाहरण है जो CAST को आज तक सही तरीके से प्रबंधित कर रहा है, लेकिन आम तौर पर यह एक बुरा विचार होगा...

संपादित करें, सितंबर 2018, datetime2 के लिए

DECLARE @datetime2value datetime2 = '02180912 11:45' --this is deliberately within datetime2, year 0218
DECLARE @datetime2epoch datetime2 = '19000101'

select DATEADD(dd, DATEDIFF(dd, @datetime2epoch, @datetime2value), @datetime2epoch)


  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 सर्वर CRUD संचालन

  2. SqlDataAdapter.भरने की विधि धीमी

  3. पेश है नई सुविधा - स्पॉटलाइट क्लाउड प्रतिकृति

  4. SQL सर्वर INFORMATION_SCHEMA दृश्य | देखें कि क्या कोई तालिका मौजूद है

  5. JSON_VALUE () SQL सर्वर में उदाहरण (T-SQL)