MYSQL时间戳在插入时为空

时间:2016-08-26 07:18:38

标签: php mysql

我使用查询

将用户选择的时间戳添加到MYSQL表
{{1}}

但是field scheduled_time的值在DB中变为NULL。可能是什么问题?

2 个答案:

答案 0 :(得分:2)

MySQL TIME()函数提取时间戳的时间部分。因此,您的INSERT查询与执行此操作相同:

INSERT INTO schedule (pending_id, scheduled_time)
VALUES ("477", '12:33:00')

换句话说,您实际上并未插入时间戳,而只是插入时间字符串片段。这导致插入NULL值。

相反,您应该在致电STR_TO_DATE后停止:

INSERT INTO schedule (pending_id, scheduled_time)
VALUES ("477", STR_TO_DATE("09/02/2016 12:33 PM", "%m/%d/%Y %h:%i %p"))

将成为

INSERT INTO schedule (pending_id, scheduled_time)
VALUES ("477", '2016-09-02 12:33:00')

<强>更新

我还更改了您在STR_TO_DATE中使用的格式字符串

%m/%d/%y %h:%i %p

%m/%d/%Y %h:%i %p

因为您的输入字符串的年份为4位数(%Y),而不是两位(%y)。

答案 1 :(得分:1)

尝试相同的查询但使用大写%Y(4位数年份):

INSERT INTO schedule( pending_id, scheduled_time ) 
VALUES (
"477", TIME( STR_TO_DATE( "09/02/2016 12:33 PM", "%m/%d/%Y %h:%i %p")))