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

अतार्किक रूप से स्वरूपित तिथियों के बीच कनवर्ट करना (बदलना /slash/ से -dash- )

$start_date = date('Y-m-d', strtotime(str_replace('/', '-', $query->row('startdate'))));

या बेहतर अभी तक - बस डेटाबेस में डेटा बदलें:

UPDATE `table` SET `startdate` = REPLACE(`startdate`, '/', '-');

... और फिर फ़ील्ड को DATE टाइप करने के लिए कनवर्ट करें।

---- संपादित करें ----

दरअसल, कर्नल श्रापनेल की एक बात है ... मैंने इस तथ्य को नजरअंदाज कर दिया था कि तारीख को उलटने की भी जरूरत है इसलिए यह YYYY-MM-DD है; यह मानते हुए कि मूल तिथि DD/MM/YYYY प्रारूप में है, एक बेहतर क्वेरी कुछ इस तरह हो सकती है:

UPDATE `table` SET `date` = CONCAT(SUBSTRING(`date`, 7), '-', SUBSTRING(`date`, 4, 2), '-', SUBSTRING(`date`, 1, 2))

जो घटक भागों को एक स्ट्रिंग में उलट देगा जिसे DATE में परिवर्तित किया जा सकता है ... यह काफी काम नहीं करेगा यदि मूल दिनांक स्ट्रिंग अग्रणी शून्य का उपयोग नहीं करती है 1/6/2011 उदाहरण के लिए... उस मामले में कुछ अधिक चालाकी से करने की आवश्यकता होगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सबकुऐरी वापसी एक से अधिक पंक्ति

  2. गिनती (*) और गिनती (कॉलम_नाम), क्या अंतर है?

  3. अजगर pymysql.err.OperationalError:(2013, 'क्वेरी के दौरान MySQL सर्वर से कनेक्शन खो गया')

  4. MySQL में संग्रहीत कार्यविधि को कैसे शेड्यूल करें

  5. Laravel 5.4 रॉ उम्मीद के मुताबिक काम नहीं कर रहा है लेकिन mySQL में काम कर रहा है