【问题标题】:How to check if a timestamp is set in MySQL and PHP?如何检查是否在 MySQL 和 PHP 中设置了时间戳?
【发布时间】:2015-09-11 12:17:30
【问题描述】:

当时间戳列定义为DEFAULT 0时,如果在INSERT或UPDATE中未指定,则'0000-00-00 00:00:00'成为默认值。

检查时间戳是否设置为默认值的正确方法是什么?

SELECT * FROM table WHERE timestamp <> 0

它似乎确实有效,但我不确定它是否是正确的方法并且 100% 有效?

在 PHP 中选择这样的值时,如何检查它是否设置?

到目前为止,我想出了这样的东西:

if ($row['timestamp'] != '0000-00-00 00:00:00') {
}

它确实有效,但对我来说似乎很俗气。我不太确定它是否正确。我应该怎么做?

【问题讨论】:

  • 这应该在 php 端工作。 if ($row['timestamp'] > 0) { }
  • @Anish,这似乎是 PHP 的方式。在 MySQL 中呢?我猜也一样?
  • @kavoir.com 。是的,同样适用于 mysql
  • SELECT * FROM table WHERE timestamp > 0 。这个

标签: php mysql timestamp


【解决方案1】:

在 PHP 端你可以使用这个

 if ($row['timestamp'] > 0) { } 

在mysql中

SELECT * FROM table WHERE timestamp > 0

【讨论】:

    【解决方案2】:

    如果字段类型为DATETIME,它将始终将0000-00-00 00:00:00 保存为默认值。所以你可以检查列是否大于0000-00-00 -

    SELECT * FROM table WHERE timestamp > '0000-00-00'
    

    【讨论】:

    • timestamp 列是DATETIME 时,我可以使用timestamp &gt; 0 吗?
    • 我更喜欢使用0000-00-00。为此,它将被视为NULL
    猜你喜欢
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    相关资源
    最近更新 更多