重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
修改日期类型为timestamp 并允许空,如下:
创新互联网络公司拥有十余年的成都网站开发建设经验,上千家客户的共同信赖。提供网站建设、做网站、网站开发、网站定制、买链接、建网站、网站搭建、响应式网站开发、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务
CREATE TABLE `test` (`aaaa` varchar(50) NOT NULL,`createday` timestamp NULL DEFAULT
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT
CHARSET=utf8;
如果是在navicat下操作的话,设置字段的类型为timestamp,默认值写上CURRENT_TIMESTAMP
扩展资料
mysql中的时间类型:
mysql中我们用的时间类型有DATE DATETIME TIME TIMESTAMP四种:
1、DATE只表示日期,检索以YYYY-MM-DD的格式显示,范围是1000-01-01到9999-12-31。
2、TIME只表示时间,检索以HH:MM:SS格式显示,范围是00:00:00到23:59:59。
3、DATETIME表示了日期和时间,检索以YYYY-MM-DD HH:MM:SS格式显示。
4、TIMESTAMP和DATETIME表示格式一样两者的不同点如下:
当使用timestamp的时候,数据有更新的时候这个字段自动更新为当前时间,所以可以作为lastmodify使用,这个变化是默认设置,如果想使时间不更新可以设置DEFAULT CURRENT_TIMESTAMP
timestamp的范围不能早于1970或者晚于2037,超过这个时间范围的话为0。
timestamp存储的时候是转为UTC存储的,获取的时候根据客户端所在时区进行展示。
timestamp占4个字节,datetime占8个字节。
通过sql语句查询下
看看现在的值
show
variables
like
'%date%';
默认的值是:
date_format=
%Y-%m-%d
datetime_format=%Y-%m-%d
%H:%i:%s
然后在mysql的配置文件my.cnf
或者
my.ini中
加入
[mysqld]
date_format=
%Y/%m/%d
datetime_format=%Y/%m/%d
%H:%i:%s
最后mysql服务器重启即可。
-- 方法一:
由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的。代替的方案是使用TIMESTAMP类型代替DATETIME类型。
TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果有多个TIMESTAMP列,只有第一个自动更新。
自动更新第一个TIMESTAMP列在下列任何条件下发生:
1.列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。
2.列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)
3.你明确地设定TIMESTAMP列为NULL.
4.除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
所以把日期类型 选择成timestamp 允许空就可以了
CREATE TABLE test (
uname varchar(50) NOT NULL,
updatetime timestamp NULL DEFAULTCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果要在navicat下操作的话,将字段设置为timestamp,然后默认值写上CURRENT_TIMESTAMP即可
解决方案一:
日期前面的符号换为逗号
日期可以用mysql的方法todate
解决方案二:
MySQL 插入数据 date 格式
mysql插入date类型的值
mysql插入date类型的值
解决方案三:
nsert into table (date) values ('to_date('2009-06-08 23:53:17','YYYY-DD-MM HH:MI:SS'),'
解决方案四:
数据库中日期字段设置datetime类型 然后就可以插入对应字符串
拓展资料
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
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也就不会提出这种问题了。
设置某字段为当前时间,修改日期类型为timestamp并允许空,如下:
create
table
`test`
(`aaaa`
varchar(50)
not
null,`createday`
timestamp
null
default
current_timestamp
on
update
current_timestamp)
engine=innodb
default
charset=utf8;
如果是在navicat下操作的话,设置字段的类型为timestamp,默认值写上
current_timestamp.