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

वर्चर (40) को डेटाटाइम कॉलम में बदलें

दो बातें:

सबसे पहले, आपका str_to_date() प्रारूप इनपुट स्ट्रिंग के प्रारूप से मेल खाना चाहिए। अगर आपकी इनपुट स्ट्रिंग 10/21/2016 15:02 है , तो आपका प्रारूप %m/%d/%Y %H:%i . है .

यहां प्रारूप कोड के लिए एक संदर्भ देखें:https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format

दूसरा, UPDATE का उपयोग करने से कॉलम का डेटा प्रकार नहीं बदलता है, यह केवल varchar स्ट्रिंग की सामग्री को बदलता है।

mysql> create table t (v varchar(50));

mysql> insert into t values ('10/21/2016 15:02');

mysql> update t set v = str_to_date(v, '%m/%d/%Y %H:%i');

mysql> select * from t;
+---------------------+
| v                   |
+---------------------+
| 2016-10-21 15:02:00 |
+---------------------+

अब यह सही प्रारूप में है, लेकिन यह अभी भी एक वर्चर है।

mysql> alter table t modify v datetime;

mysql> select * from t;
+---------------------+
| v                   |
+---------------------+
| 2016-10-21 15:02:00 |
+---------------------+

अब डेटा प्रकार बदल दिया गया है।

mysql> show create table t\G

CREATE TABLE `t` (
  `v` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4



  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 ऑन और ऑफ टाइम स्टैम्प प्लस 3 सेकंड के बीच अधिकतम मूल्य का चयन करने के लिए

  2. Php . में MySQL निकालने वाला सरणी

  3. MySQL तालिका में रैंक अपडेट करें

  4. दो स्टॉप नामों के बीच सभी प्रस्थान और आगमन के समय को सूचीबद्ध करने के लिए GTFS क्वेरी

  5. जावा में वर्तमान तिथि से mySQL से किसी दिनांक की तुलना कैसे करें?