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

YYYYMMDD स्ट्रिंग को MMDDYYYY स्ट्रिंग जैसे फ़्लॉप करने के लिए तालिका में स्ट्रिंग मानों को अपडेट करना

मान लें कि हमारा दिनांक कॉलम char है या varchar , आप ऐसा कुछ कर सकते हैं

update foo
set dates = right(dates,4) + left(dates,4)

या यह

update foo
set dates = replace( convert(varchar,convert(datetime,dates,112),110) , '-' , '' )

यदि आप केवल प्रदर्शन करना चाहते हैं आपका टेक्स्ट अलग है, सबसे आसान तरीका है

select ... ,
       dates = right(dates,4) + left(dates,4)
from foo

या एक दृश्य बनाएं और मूल तालिका के बजाय उसका उपयोग करें:

create view foo_view
as select id ,
          dates = right(dates,4) + left(dates,4)
   from foo

लेकिन यदि आप वास्तविक दिनांक/समय डेटा प्रकारों का उपयोग करते हैं, तो आपके डेटा के उपयोगकर्ता उन्हें क्लाइंट में उपयुक्त दिनांक/समय प्रकारों के लिए मैप करवाएंगे और फिर यह चुन सकते हैं कि उनकी आवश्यकताओं के लिए उन्हें सर्वोत्तम तरीके से कैसे प्रदर्शित किया जाए।

दिनांक/समय प्रकारों का उपयोग करने का दूसरा लाभ यह है कि वे डेटा अखंडता को लागू करते हैं . तब तक प्रतीक्षा करें जब तक कि कोई व्यक्ति इसे अमान्य करने के लिए कोई तिथि जोड़ या बदल न दे - मान लें, `20142331'। फिर, जब आपको उस डेटा को एक महीने के नाम ('जनवरी 22, 2014, मान लें) के साथ एक फॉर्म में प्रदर्शित करने की आवश्यकता होती है, तो जब आपको महीने की संख्या को एक महीने के नाम पर मैप करने का प्रयास करने का अपवाद मिलता है, तो उल्लास पैदा होगा।

यदि आप दिनांक/समय प्रकार का उपयोग नहीं करने जा रहे हैं, तो अखंडता को लागू करने के लिए उपयुक्त जांच बाधाओं के साथ वर्ष, माह और दिन को अलग-अलग पूर्णांक मानों के रूप में संग्रहीत करें:

create table foo
(
  id   int not null identity(1,1) primary key ,
  yyyy int not null check ( yyyy between 1900 and 2100 ) ,
  mm   int not null check ( mm between 1 and 12 ) ,
  dd   int not null check ( dd between 1 and ( case mm
                                                 when  4 then 30
                                                 when  6 then 30
                                                 when  9 then 30
                                                 when 11 then 30
                                                 when  2 then case
                                                                when yyyy % 400 = 0 then 29
                                                                when yyyy % 100 = 0 then 28
                                                                when yyyy % 4   = 0 then 29
                                                                else                     28
                                                              end
                                                 else 31
                                               end
                                             )
                          )


  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. SQL सर्वर समानांतर बैकअप पुनर्स्थापना -2

  4. विदेशी कुंजी बाधा चक्र या एकाधिक कैस्केड पथ का कारण बन सकती है?

  5. बनाओ, तोड़ो नहीं, SQL सर्वर प्रदर्शन