我使用查询
将用户选择的时间戳添加到MYSQL表{{1}}
但是field scheduled_time的值在DB中变为NULL。可能是什么问题?
答案 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")))