2013-08-06 26 views
20

我曾尝试使用以下两种方法来插入日期和时间格式字符串到MySQL时间戳字段但都表明了我0000-00-00 00:00:00如何将自定义日期插入到mysql时间戳字段?

INSERT INTO test VALUES (UNIX_TIMESTAMP('2013-08-05 18:19:03')) 
INSERT INTO test VALUES (UNIX_TIMESTAMP(STR_TO_DATE('2013-08-05 18:19:03', '%Y-%m-%d %H:%i:%s'))) 

我认为第一个应该是我的工作我期待但不知道为什么不分析日期和时间?

+0

您的'UNIX_TIMESTAMP'用法没有什么问题,正如您在mysql下执行'SELECT <您的unix timestamp stuff>'所看到的一样。你的桌子是否有多列?或者,列的数据类型可能不是int(因为这是'UNIX_TIMESTAMP'返回的内容)? – GreatBigBore

+0

尝试在MySQL中输入你的INSERT语句,看看它是如何响应的。 – GreatBigBore

+0

@GreatBigBore我的领域是时间戳,它不是一个日期和时间列,只有一列 – Maximus

回答

24

问题是你的字段被定义为TIMESTAMP,但是UNIX_TIMESTAMP返回一个int。改为使用INSERT INTO test VALUES ('2013-08-05 18:19:03')

+0

工作!谢谢。我想知道为什么strtotime PHP函数工作正常,但不是UNIX_TIMESTAMP在MySQL查询?当我在日期函数中传递unix_timestamp值时,它会显示我43年的返回日期。 – Maximus

+0

这可能是因为您正在使用的PHP函数期望得到的不是由'UNIX_TIMESTAMP'返回的int。仔细检查文档,你可能会发现问题。 – GreatBigBore

相关问题