【问题标题】:How to Insert custom date into mysql timestamp field?如何将自定义日期插入 mysql 时间戳字段?
【发布时间】:2013-08-08 04:12:33
【问题描述】:

我尝试使用以下两种方法将格式化的日期和时间字符串插入 mysql 时间戳字段,但都显示 0000-00-00 00:00:00

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')) )

我相信第一个应该可以按预期工作,但不确定为什么不解析日期和时间?

【问题讨论】:

  • 你的UNIX_TIMESTAMP使用没有问题,你可以通过mysql下的SELECT <your unix timestamp stuff>看到。您的表格是否有不止一列?或者该列的数据类型可能不是 int(因为这是 UNIX_TIMESTAMP 返回的内容)?
  • 尝试将你的INSERT 语句输入mysql,看看它是如何响应的。
  • @GreatBigBore 我的字段是时间戳,不是日期和时间列,只有一列

标签: mysql datetime timestamp unix-timestamp


【解决方案1】:

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

【讨论】:

  • 成功了!谢谢。我想知道为什么 strtotime php 函数可以正常工作,但 mysql 查询中的 UNIX_TIMESTAMP 不能正常工作?当我在日期函数中传递 unix_timestamp 值时,它会显示 43 年前的日期。
  • 这可能是因为您使用的 PHP 函数期望的不是 UNIX_TIMESTAMP 返回的 int。仔细检查文档,您可能会发现问题。
猜你喜欢
  • 1970-01-01
  • 2014-09-28
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多