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

अवरोही तिथि के अनुसार क्रम - माह, दिन और वर्ष

मैं अनुमान लगा रहा हूँ EventDate एक चार या वर्चर है और एक तारीख नहीं है अन्यथा खंड द्वारा आपका आदेश ठीक होगा।

आप CONVERT का उपयोग मानों को किसी दिनांक में बदलने और उसके अनुसार क्रमित करने के लिए कर सकते हैं

SELECT * 
FROM 
     vw_view 
ORDER BY 
   CONVERT(DateTime, EventDate,101)  DESC

इसके साथ समस्या है, जैसा कि स्पार्की टिप्पणियों में बताता है, यदि EventDate का कोई मान है जिसे उस तिथि में परिवर्तित नहीं किया जा सकता है जो क्वेरी निष्पादित नहीं होगी।

इसका मतलब है कि आपको या तो खराब पंक्तियों को बाहर कर देना चाहिए या खराब पंक्तियों को परिणामों की तह तक जाने देना चाहिए

खराब पंक्तियों को बाहर करने के लिए बस WHERE IsDate(EventDate) = 1 add जोड़ें

खराब तिथियों को नीचे जाने देने के लिए आपको CASE . का उपयोग करने की आवश्यकता है

उदा.

ORDER BY 
    CASE
       WHEN IsDate(EventDate) = 1 THEN CONVERT(DateTime, EventDate,101)
       ELSE null
    END DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Intel Xeon स्केलेबल प्रोसेसर और SQL सर्वर 2017

  2. SQL सर्वर (T-SQL) में मौजूदा तालिका में एक CHECK बाधा जोड़ें

  3. संदिग्ध मोड में फंसे SQL सर्वर डेटाबेस को प्रभावी ढंग से हल करें

  4. SQL सर्वर में किसी ऑब्जेक्ट की आईडी उसके नाम से प्राप्त करें:OBJECT_ID ()

  5. SQL सर्वर एकत्रीकरण के साथ यादृच्छिक (या पहले) मान चुनें