首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL NOW()只返回年份

问MySQL NOW()只返回年份
EN

Stack Overflow用户
提问于 2011-03-06 10:10:05
回答 3查看 1.8K关注 0票数 2

MySQL文档关于NOW()函数..。

以‘YYYY:MM:SS’或YYYYMMDDHHMMSS.uuuuuu格式返回当前日期和时间,这取决于函数是在字符串还是数字上下文中使用。该值在当前时区中表示。

这是我的疑问..。

代码语言:javascript
复制
$sql = "

    INSERT INTO `users` ( `username`, `password`, `email`, `time` )
    VALUES ('{$username}', '" . sha1( $password ) . "', '{$email}', NOW() )

";

问题是,在数据库中,我没有完整的日期,但只有一年。有什么解决办法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-06 10:18:24

它是int(10),就像我使用UNIX时间戳时一样。

NOW()只适用于DATETIME字段。

您需要将您的字段转换为DATETIME (较好的方法),或者使用UNIX_TIMESTAMP():将NOW()转换为UNIX时间戳

代码语言:javascript
复制
UNIX_TIMESTAMP(NOW())
票数 5
EN

Stack Overflow用户

发布于 2012-11-07 10:35:02

我也遇到了同样的麻烦,在我读到这个问题之前,我被困了很久。我使用mysql的now()函数来更新成员的上次登录时间。

MySQL的now()将日期时间作为字符串返回,就像YYYY-MM-DD HH:MM:SS一样--在我停止使用它的某个地方,并开始使用time() (UNIXTIME) (使使用起来更容易),它返回一个数字字符串,比如1352254528。但是您不能在日期时间字段中存储这样的数字字符串,同样,您也不能将YYYY-MM-DD HH:MM:SS存储在int(11)字段中。后者只会导致储存一年。

最后,您应该使用:

如果要使用int(11)的time()函数将时间存储为数字串,则使用DATETIME field (如果要使用MySQL的NOW()函数)。

票数 4
EN

Stack Overflow用户

发布于 2011-03-06 10:19:37

试一试

代码语言:javascript
复制
strtotime(now())

您肯定应该使用timestamp或datetime作为列的类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5209864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档