如果MySQL数据类型为时间戳,并且默认值为“0000-00-00 00:00”,如何检查是否为空?

3
我希望找到最佳方法,如果mysql数据类型是TIMESTAMP并且为null,则返回truefalse,日期将显示为0000-00-00 00:00
我尝试过以下方式 -
if($mycolumn == "0000-00-00 00:00") {
    echo "null";
} else {
    echo "not null";
}

这是针对时间戳列的mysql -
last_login TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'

我想知道如果这不是通往工作的正确方式,那么我该如何检查是否为空时间?

谢谢。


如果您的数据库具有默认值,那么可以使用以下方法... - Sureshkumar Panneerselvan
请简要说明您需要这个的情况,这样更容易理解。如果最后一次登录没有值,则默认值将由数据库填充。因此,如果您想检查这个人是否是第一次登录,这就是方法。 - Sureshkumar Panneerselvan
  1. 0000-00-00 00:00 不是空值。
  2. 你的决定出了什么问题?
- sectus
是的,我只想检查一个特定用户是否已经登录。 - user3733831
@user3733831 在 PHP 中,如果你重新分配了值,它将立即从表中消失,类似于:select user, id, telephone, IF(last_login = '0000-00-00 00:00:00', "null", "not null") as last_login from Table .... 因此,当你获取列时,("null","not null") 将为你准备好。 - Yehia Awad
显示剩余4条评论
2个回答

1

我认为最好的方法是使用这个方法

SELECT  IF(last_login = '0000-00-00 00:00:00', "null", "not null") as last_login from ...

0

用户名和密码是任意的,但如果你分组计数,就可以检查最后一次登录是否大于0。

SELECT * FROM (SELECT username, COUNT(last_login) AS date_checker FROM sessions
        WHERE password = '123456'
) AS tmp WHERE (date_checker = 0 OR username = 'foobar')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接