MySQL时间戳字段不接受unix_timestamp()结果
我有一个mysql表,其列名为date,类型为TIMESTAMP。 我正在尝试使用加载数据本地填充加载大量数据。 一切正常,只是日期列不能用从字符串创建的自定义unix时间戳填充。以下是SQL查询:MySQL时间戳字段不接受unix_timestamp()结果,mysql,Mysql,我有一个mysql表,其列名为date,类型为TIMESTAMP。 我正在尝试使用加载数据本地填充加载大量数据。 一切正常,只是日期列不能用从字符串创建的自定义unix时间戳填充。以下是SQL查询: LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE names FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (@nm) set `name`=@nm, `g
LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE names FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (@nm) set `name`=@nm, `gender`='female', `date`=UNIX_TIMESTAMP(STR_TO_DATE('2015-06-07 09:21:44', '%Y-%m-%d %H:%i:%s'));
还尝试了这一点:
LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE names FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (@nm) set `name`=@nm, `gender`='female', `date`=UNIX_TIMESTAMP('2015-06-07 09:21:44');
问题是,日期字段中填充了0000-00-00:00:00
有人知道问题出在哪里吗?如果
date
是数据类型TIMESTAMP
,就这样做
`date` = '2015-06-07 09:21:44'
不需要使用带有STR\u-TO\u-DATE
和UNIX\u时间戳的繁文缛节。MySQL将字符串文本(以该格式)隐式转换为DATE
,DATETIME
,TIMESTAMP
数据类型,前提是在需要这些数据类型之一的上下文中
如果要将值存储到数字列中,而不是存储在时间戳
中,则需要使用UNIX\u TIMESTAMP
函数返回整数值
尝试删除UNIX\u时间戳
和STR\u TO\u DATE
函数
TIMESTAMP
字段使用yyyy-mm-dd hh:mm:ss
格式(与DATETIME
相同)。MySQL没有UNIX\u时间戳
数据类型,你是说时间戳
?是的,你说得对!很抱歉更正,谢谢您的提醒!尝试删除UNIX\u时间戳
和STR\u TO\u DATE
函数<代码>时间戳
字段使用yyyy-mm-dd hh:mm:ss
格式(与DATETIME
相同)。@Vatev,您能将您的评论移动到答案吗?你首先提供了它,它是有效的。你的答案是正确的,谢谢你的帮助。然而,@Vatev的评论首先出现,我需要接受他。无论如何,谢谢你的帮助!