【问题标题】:MySQL CURRENT_TIMESTAMP does not returns current timestampMySQL CURRENT_TIMESTAMP 不返回当前时间戳
【发布时间】:2017-05-23 11:25:32
【问题描述】:

我使用两种方法在表中插入了时间戳: 1 - time() php 代码 2 - insert into mytable (...,....,time) values(...,...,CURRENT_TIMESTAMP())。 插入的值为:1) 1495353761 和 2)2147483647。 DB 中time 的类型为INT(11)。我的问题是为什么会发生这种情况,我该怎么办? (主机:本地主机)

【问题讨论】:

  • 你能发布php时间戳的格式吗...??
  • 它是一个数字。整数(11)
  • 有时会因地理位置而异。在您的 PHP 中设置 date_default_timezone_set() 以获取您所在位置的时间戳。或If u think timestamp should be same, they'll be never same, timestamp changes every milli second
  • 我知道时间戳的变化。时区最多相差 24 小时。就我而言,差异大约是 15 年
  • Your answer is here... 我引用了这个答案:“2147483647 是 mysql 的最大 int 值。只需将类型从 int 更改为 bigint。” - @ManManam 让我知道如果你想让我发表我的评论作为答案。

标签: mysql timestamp


【解决方案1】:

2147483647 一个是错误的。相当于格林威治标准时间 2038 年 1 月 19 日星期二 03:14:07

参考https://en.wikipedia.org/wiki/2,147,483,647

您发送的内容有误。仔细检查您的时间字段类型。

【讨论】:

  • 感谢您的回答。如您所见,没有参数。我刚刚使用 phpmyadmin 在查询中插入了一行。方法是CURRENT_TIMESTAMP(),它返回当前时间戳
  • 您的时间字段的类型是什么?例如:它适用于 DATETIME。
【解决方案2】:

时间类型在我的表中是 int(11)。 CURRENT_TIMESTAMP 适用于 DATETIME 类型。如果你想要一个整数作为时间戳,你应该使用UNIX_TIMESTAMP()

【讨论】:

    【解决方案3】:

    编辑:我将答案更改为社区 wiki。


    2147483647 是 mysql 的最大 int 值。只需将类型从 int 更改为 bigint。

    从这个答案中提取/引用:


    来自 cmets:

    "@Fred-ii- 谢谢你的回答。你是对的。我已将类型更改为 BIGINT(20)。它返回 20170523021022。如果你查看数字,它是日期和时间。所以我使用 UNIX_TIMESTAMP()。它解决了我的问题。- Man Manam"

    【讨论】:

    • 注意:我无法结束这个问题,因为我已经投票为不清楚。
    猜你喜欢
    • 2014-11-02
    • 1970-01-01
    • 2018-01-26
    • 2015-03-02
    • 2015-06-13
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多