Php MYSQL时间戳在插入时为空
我使用查询将用户选择的时间戳添加到MYSQL表中Php MYSQL时间戳在插入时为空,php,mysql,Php,Mysql,我使用查询将用户选择的时间戳添加到MYSQL表中 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"))) 但是字段scheduled_time的值在DB中为NULL。可能是什么问题?尝试相同的查询,但使用大写%Y(4位数年份): 尝试相同的查询,但使用大写%Y(4位数年份): MySQL
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")))
但是字段scheduled_time的值在DB中为NULL。可能是什么问题?尝试相同的查询,但使用大写%Y(4位数年份):
尝试相同的查询,但使用大写%Y(4位数年份): MySQL
TIME()
函数提取时间戳的时间部分。因此,您的INSERT
查询与执行此操作相同:
INSERT INTO schedule (pending_id, scheduled_time)
VALUES ("477", '12:33:00')
换句话说,您实际上并没有插入时间戳,而是插入了一个时间字符串片段。这将导致插入一个NULL
值
相反,您应该在调用STR\u TO\u 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\u中使用的格式字符串更改为\u DATE
from
%m/%d/%y %h:%i %p
到
因为您的输入字符串的年份为4位(%Y
),而不是两位(%Y
)。MySQLTIME()
函数提取时间戳的时间部分。因此,您的INSERT
查询与执行此操作相同:
INSERT INTO schedule (pending_id, scheduled_time)
VALUES ("477", '12:33:00')
换句话说,您实际上并没有插入时间戳,而是插入了一个时间字符串片段。这将导致插入一个NULL
值
相反,您应该在调用STR\u TO\u 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\u中使用的格式字符串更改为\u DATE
from
%m/%d/%y %h:%i %p
到
由于您的输入字符串的年份为4位(
%Y
),而不是两位(%Y
)。计划时间列的类型是什么?计划时间列的类型是什么?它是以0000-00-00-00:00:00插入的。我知道了,请查看Tim答案。您将在时间戳中插入时间,因此需要删除时间()function@ipeiro您发现%y
问题仍然值得表扬。这也是错误的。我的scheduled_time列数据类型是timestamp,在删除time()方法后,该查询对meyah有效。谢谢,它作为0000-00-00:00:00插入。我知道了,请查看Tim答案。您将在时间戳中插入时间,因此需要删除时间()function@ipeiro您发现%y
问题仍然值得表扬。这也是错误的。我的scheduled_time列数据类型是timestamp,在删除time()方法后,此查询对meyah有效。谢谢