我在MariaDB('10.1.37-MariaDB'
)服务器上使用MySQL Workbench 8.0 。
我正在尝试使用表数据导入向导将3个示例值导入到表中。这是CSV外观的示例:
emp_id,Event,Event_start_time,Event_end_time,
example,shift,"2020/11/6 0:00:00","6/11/2020 23:59",
example,lunch,"2020/14/06 13:00:00","2020/14/06 13:30:00",
example,break,"2020/14/06 10:10:00","2020/14/06 10:30:00",
在导入期间,每个值都会正确显示,并保存“日期时间”字段(Event_start_time
,Event_end_time
),该字段显示为'0000-00-00 00:00:00'
在运行select
语句后显示。
我尝试了以下格式,但似乎都无法正常工作:
"2020/11/6 0:00:00"
2020/11/6 0:00:00
2020/11/06 00:00:00
2020-11-06 00:00:00
以下案例是成功的:
2020-11-06 0:00
但是我需要能够包含几秒钟的业务逻辑。
更糟的是,当我.csv
使用相同的向导将表(具有现有的Datetime值)导出到,然后尝试重新导入时,所有值均加载为'0000-00-00 00:00:00'
。在为其他人开发解决方案时,我想尽可能地减少/避免MySQL脚本。我究竟做错了什么?
您的日期似乎是YYYY/DD/MM HH:MI:SS
格式,从MySQL的角度来看这是无效的。您需要将它们格式化,YYYY-MM-DD HH:MI:SS
以便数据库可以正确识别它们。
如果您将数据保存在CSV文件中,则一个简单的选择就是输入预处理的LOAD DATA INFILE
语法。根据所显示的示例数据,其外观应类似于:
load data infile 'myfile.csv'
into mytable (emp_id, event, @event_start_time, @event_end_time)
fields terminated by ',' optionally enclosed by '"'
ignore 1 lines
set
event_start_time = str_to_date(@event_start_time, '%Y/%d/%m %H:%i:%s'),
event_end_time = str_to_date(@event_end_time, '%Y/%d/%m %H:%i:%s')
您可能需要将对帐单选项(可能还有目标日期格式)调整为实际使用情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句