我在MySQL 5.6版中遇到类型兼容性问题。
我将此数据格式设置为Local Date time
(2007-01-01T00:25:47),我需要将它们写在数据库上,但是找不到与MySQL兼容的对应类型。
我已经尝试过:
DATETIME
TIMESTAMP
有什么建议吗?
答案 0 :(得分:1)
您的问题是T
中的Local Date time
使得该值与MySQL的DATETIME
或TIMESTAMP
列不兼容。但是,您可以使用STR_TO_DATE
来转换格式,或者使用REPLACE
来将T
替换为空格(从而使其成为MySQL兼容的日期时间)来解决。例如:
create table test (d datetime, t timestamp);
insert into test values
(str_to_date('2007-01-01T00:25:47', '%Y-%m-%dT%H:%i:%s'), str_to_date('2007-01-01T00:25:47', '%Y-%m-%dT%H:%i:%s')),
(replace('2007-01-01T00:25:47', 'T', ' '),replace('2007-01-01T00:25:47', 'T', ' '));
select * from test
输出:
d t
2007-01-01 00:25:47 2007-01-01 00:25:47
2007-01-01 00:25:47 2007-01-01 00:25:47
答案 1 :(得分:0)
您是否尝试过使用MySQL命令将字符串解析为日期?
STR_TO_DATE(str,format)
您可以尝试将当前类型转换为字符串,然后通过STR_TO_DATE命令将其通过管道传输,然后以正确的格式存储在数据库中。
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-to-date