我使用sql使用以下代码导出数据
select * from club
其中一列是mm/dd/yyyy hh/sec
ID | Date
-----------------
1 | 4/8/2017 16:36
我需要将提取的数据库导入另一台服务器的phpmyadmin作为datetime。当我在phpMyAdmin中使用导入功能时,无论导入文件中是否有任何值,它都会将导入记录中的所有日期列设置为0000-00-00 00:00。
有人可以告诉我需要做什么才能将数据库中的Datecolumn设置为4/8/2017 16:36
而不是0000-00-00 00:00:00?
响应:
我试过这个,但它在日期
中给出了空值select idCustomer, msisdn, idOperator, STR_TO_DATE(lastBilledDate,'%d/%m/%Y %h:%i'), STR_TO_DATE(customerSince,'%d/%m/%Y %h:%i'), pin, isValid, isBlocked
from customer where customerSince between '2017-04-01' and '2017-04-10'
答案 0 :(得分:0)
您的日期似乎是文本格式。如果要将其保留为此格式,请将新数据库中的列设置为文本。如果要将其转换为MySQL日期格式:
SELECT id, STR_TO_DATE(Date,'%d/%m/%Y %h:%i') from table;
(假设您的格式中的最后一个数字是munutes的数量)
答案 1 :(得分:0)
MySQL日期时间格式为YYYY-MM-DD HH:MM:SS
,因此如果列类型设置为datetime且导入文件中的格式不正确,则会插入零。
尝试将datetime导入临时varchar列,然后使用STR_TO_DATE
将实际日期时间列中的字符串转换为日期进行更新。
这样的事情:
UPDATE table SET real_datetime_column = STR_TO_DATE(temp_varchar_column, '%m/%d/%Y %h:%i');