今天在上课的时候在测试MSSQL建表的时候 注册时间默认值用getdate()能够获取插入值时候的时间create table temp( id int PRIMARY key, in_time datetime NOT NULL default getdate() ) 数据库
可是在MYSQL建表练习的时候不能用now()进行对应的作法:测试
create table temp( id int PRIMARY key, in_time datetime NOT NULL default now() )spa
却不行,最后发现MYSQL中有个数据类型:时间戳timestamp,这个类型如其意思就像邮戳同样在更改信内容时时邮戳上的时间不会改变,这种类型用来定义注册时间再好不过了。设计
作了具体的改动:get
create table temp( id int PRIMARY key, in_time timestamp NOT NULL defaultnow())table
不过建议用这种作法:程序设计
create table temp( id int PRIMARY key, in_time timestamp NOT NULL default CURRENT_TIMESTAMP )date
若是想在更新表内内容时候默认的时间戳也会便会则在穿件时间字段时候后面加on update CURRENT_TIMESTAMP 便可:数据类型
create table temp( id int PRIMARY key, in_time timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP)程序
若是时间戳用在一个固定不变的时间上,好比用户的注册时间上那再好不过了,不过这种在数据库中对时间可否由于需求的变动而变动显得至关麻烦,由于在不稳定的需求过程当中你修改数据库表结构的代价毕竟比在程序里加一句update in_time(就是更新时间,具体问题具体写法)更大。
程序设计,按严格的执行顺序和需求来。