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

MySQL में varchar को डेटाटाइम में बदलने में असमर्थ

बताए गए तीन चरण @Arkain फंक्शन की मदद से होंगे STR_TO_DATE

-- add the new column
ALTER TABLE `my_table` ADD COLUMN `date_time` DATETIME; 

-- update the new column with the help of the function STR_TO_DATE
UPDATE `my_table` SET `date_time` = STR_TO_DATE(`_time`, '%Y%m%d%H%i');

-- drop the old column
ALTER TABLE `my_table` DROP COLUMN `_time`;

STR_TO_DATE के लिए विनिर्देशों की पूरी सूची DATE_FORMAT , यहां उन लोगों के साथ एक अंश है जिनका मैंने उपयोग किया था:

%d  Day of the month, numeric (00..31)
%H  Hour (00..23)
%i  Minutes, numeric (00..59)
%m  Month, numeric (00..12)
%Y  Year, numeric, four digits

अपडेट का डेमो

यदि नए कॉलम में NOLL विशेषता होनी चाहिए, तो एक तरीका यह हो सकता है कि ऑपरेशन से पहले sql मोड को '' पर सेट करें और बाद में sql_mode को रीसेट करें:

SET @old_mode = @@sql_mode;
SET @@sql_mode = '';        -- permits zero values in DATETIME columns

ALTER TABLE `my_table` ADD COLUMN `date_time` DATETIME NOT NULL; 
UPDATE `my_table` SET `date_time` = STR_TO_DATE(`_time`, '%Y%m%d%H%i');
ALTER TABLE `my_table` DROP COLUMN `_time`;

SET @@sql_mode = @old_mode;

अपडेट किया गया डेमो



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL प्रतिकृति:अस्थायी रूप से विशिष्ट SQL कथनों को दासों की नकल करने से रोकें?

  2. MySQL क्वेरी को दो बार चलाना SQL_NO_CACHE के साथ भी दूसरी बार तेज़ होना चाहिए

  3. magento मॉड्यूल से एक नई तालिका बनाएं

  4. MySQL:केवल सम या विषम संख्याओं के साथ स्वतः वृद्धि?

  5. टेक्स्टफाइल संरचना (टेबल)