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

बीच के समय के लिए डेटपार्ट (कन्वर्ट की तारीख के बजाय)

उदाहरण के लिए आप इसका उपयोग कर सकते हैं

DECLARE 
    @min FLOAT = CAST(CAST('19000101 12:20' AS DATETIME) AS FLOAT),
    @max FLOAT = CAST(CAST('19000101 15:50' AS DATETIME) AS FLOAT)

SELECT 
    *
FROM table
WHERE CAST(DateField AS FLOAT) - FLOOR(CAST(DATEFIELD AS FLOAT)) BETWEEN @min AND @max

लेकिन यह वास्तव में कोई समाधान नहीं है!!!

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

. के रूप में 1 और परिकलित कॉलम को पेश किया जाए
NewColumn AS DATEPART(HOUR, DateColumn)*100+DATEPART(minute, DateColumn)  

उस पर इंडेक्स बनाएं और जहां क्लॉज में इस्तेमाल करें

WHERE NewColumn BETWEEN 1220 AND 1550


  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 कनेक्शन में एकाधिक SQL कमांड कैसे चलाएं?

  2. SQL सर्वर में डेटाबेस चेकप्वाइंट

  3. SQL सर्वर (T-SQL) में किसी दिनांक से सप्ताह संख्या निकालें

  4. SQL सर्वर में लॉजिकल और ऑपरेटर क्या है - SQL सर्वर / TSQL ट्यूटोरियल पार्ट 120

  5. मापदंडों की सूची के अनुसार SQL क्वेरी फ़िल्टरिंग