mysql - Mysql数据库,将存储在文本中的日期(dd/mm/yy)转换为日期时间的问题
问题描述
我收到了一个包含客户数据的 Mysql 表,该表的结构非常糟糕,几乎所有字段都是 TEXT。为了防止丢失数据,我创建了另一个表,我试图以正确和有用的方式导入列。将 Full_name 拆分为 name 和 surname 列效果很好,但是当我尝试将包含 dd/mm/yy 日期的字段 created_time 转换为 DATETIME 时,它会显示错误的数据,例如。2018 年 10 月 10 日至 2010 年 10 月 18 日。
我已求助于创建另一个字段 created_time_old,将文本数据复制到那里,然后按照其他答案的建议通过 STR_TO_DATE 将其转换。但是,我只能将字符串放在那里,当我放整列时,它只会给我:
1411 - 不正确的日期时间值:函数 str_to_date 的“”。
我假设有另一种方法/功能可以做到这一点,但在 SQL 方面我不是很有经验。此外,如果您对我的代码有任何其他建议,请发表:)
我的代码如下
TRUNCATE TABLE Facetel_bazaPGS;
INSERT INTO Facetel_bazaPGS (id,created_time_old,campaign_name,email,Imię,Nazwisko,`phone_number`,platform,Time_added)
SELECT `id`,created_time,`campaign_name`,`email`,substring_index(`full_name`, ' ',1 ),substring(`full_name` from INSTR(`full_name`, ' ') + 1),`phone_number`,`platform`,Time_added
FROM `Facetel_bazaPGS_input`;
UPDATE Facetel_bazaPGS
SET platform = Replace(REPLACE(platform, 'fb', 'Facebook') , 'ig', 'Instagram');
UPDATE Facetel_bazaPGS
SET created_time = STR_TO_DATE(`created_time_old`, '%d/%m/%y');
编辑#1:添加示例数据(由于 GDPR 无法提供真实数据)
+------------------+--------------+---------------+--------------------+--------------+---------------------+----------+---------------------+
| id | created_time | campaign_name | email | full_name | phone_number | platform | Time_added |
+------------------+--------------+---------------+--------------------+--------------+---------------------+----------+---------------------+
| 1010334092505681 | 10/10/18 | leady | samplemail@mail.eu | Name | your_typical_number | ig | 2018-10-11 08:29:45 |
| 1010457652493325 | 10/10/18 | leady | samplemail@mail.eu | Name Surname | your_typical_number | ig | 2018-10-11 08:29:45 |
| 1010470612492029 | 10/10/18 | leady | samplemail@mail.eu | Name Surname | your_typical_number | fb | 2018-10-11 08:29:45 |
+------------------+--------------+---------------+--------------------+--------------+---------------------+----------+---------------------+
解决方案
再次感谢您的所有建议,我已经放弃了,更改了 Excel 中列的格式,再次导入并要求将来在 created_time 列中输入 YYYY-MM-DD 格式。
推荐阅读
- javascript - React 如何在没有 npm 的情况下创建通知
- c# - 如何根据公共属性过滤列表(然后才能找到最小值)
- html - 如何将参数传递给 GET Web 请求而不在 URL 中显示?
- java - Mockito - 监视多个依赖项
- docker - Docker 使用 sshfs 挂载远程卷
- socket.io - 是否可以在 jmeter 中获取并传递在运行时更改的套接字 id
- javascript - 如何使用 Vue.js 读取文件内容的变化
- spring - Spring Boot 外部数据源 bean
- angular - 在下拉角度上将值保存为 id 的问题
- javascript - javascript中的赋值问题