mysql 在数据库中设置时间

CREATETABLEblogentries(blog_idINT(100)PRIMARYKEY,author_idINTREFERENCESauthor(author_... CREATE TABLE blogentries
(
blog_id INT (100) PRIMARY KEY,
author_id INT REFERENCES author (author_id),
title TEXT NOT NULL,
description TEXT,
TYPE NVARCHAR(10) NOT NULL,
allowcomment CHAR(1) NOT NULL,
markprivate CHAR(1) NOT NULL,
body TEXT NOT NULL,
datecreated DATETIME DEFAULT ( NOW()),(报错!!!!!)
datepublish DATETIME DEFAULT (NOW()),
datemodified DATETIME DEFAULT (NOW()),

)
展开
 我来答
百度网友13eda02
2014-12-23 · TA获得超过778个赞
知道小有建树答主
回答量:1048
采纳率:77%
帮助的人:409万
展开全部
1、非要用datetime的话就不能用default而要通过trigger来实现
2、在插入时value用now()函数、或者自行取运行时间
3、字段类型改变为:
datecreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
datemodified timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
但是其实不可行,因为一个表只能有一个CURRENT_TIMESTAMP,但你有三个字段。

所以当有多个时间可能还是得结合方式2与方式3来综合处理。当然全都用方式2也就不会提出这种问题了。
匿名用户
推荐于2017-08-07
展开全部
在创建表的时候是不支持函数的,而且datetime本身是不支持默认是now()的,必须使用timestamp这个类型,如下:
CREATE TABLE blogentries
(
blog_id INT (100) PRIMARY KEY,
author_id INT REFERENCES author (author_id),
title TEXT NOT NULL,
description TEXT,
TYPE NVARCHAR(10) NOT NULL,
allowcomment CHAR(1) NOT NULL,
markprivate CHAR(1) NOT NULL,
body TEXT NOT NULL,
datecreated TIMESTAMP ,
datepublish TIMESTAMP ,
datemodified TIMESTAMP defAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

)
defAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP就是插入时默认当前时间,更新时更新为当前时间。另外有一个问题就是Mysql目前一个表只支持一个字段有默认当前时间,所以说你的datecreated和datepublish需要在插入函数中处理,例如
insert blogentries(blog_id,title,datecreated) values(1, 'help me', now());
同理,发表时间也可以用同样的方式插入。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sangqiyyy
2014-12-23 · 超过26用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:43万
展开全部
在创建表的时候是不支持函数的,而且datetime本身是不支持默认是now()的,必须使用timestamp这个类型,如下:
CREATE TABLE blogentries
(
blog_id INT (100) PRIMARY KEY,
author_id INT REFERENCES author (author_id),
title TEXT NOT NULL,
description TEXT,
TYPE NVARCHAR(10) NOT NULL,
allowcomment CHAR(1) NOT NULL,
markprivate CHAR(1) NOT NULL,
body TEXT NOT NULL,
datecreated TIMESTAMP ,
datepublish TIMESTAMP ,
datemodified TIMESTAMP defAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

)
defAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP就是插入时默认当前时间,更新时更新为当前时间。另外有一个问题就是Mysql目前一个表只支持一个字段有默认当前时间,所以说你的datecreated和datepublish需要在插入函数中处理,例如
insert blogentries(blog_id,title,datecreated) values(1, 'help me', now());
同理,发表时间也可以用同样的方式插入。
希望能够帮助你。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式