关于mysql中日期格式的默认值问题

除timestamp类型外,系统不支持其它时间类型字段设置默认值
以下3种写法都可以:
1.DEFAULT CURRENT_TIMESTAMP()

create table `new`(
	`id` int(4) primary key auto_increment,
	`create_date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP()
)

2.DEFAULT CURRENT_TIMESTAMP

create table `new`(
	`id` int(4) primary key auto_increment,
	`create_date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)

3.DEFAULT NOW()

create table `new`(
	`id` int(4) primary key auto_increment,
	`create_date` TIMESTAMP DEFAULT NOW()
)

MySQL中有一些日期函数可供我们使用,我们可以使用 ” select 函数名() ; ” 的 sql 查看它们的返回值。
例如:

select CURRENT_DATE();

在这里插入图片描述

select CURRENT_TIME();

在这里插入图片描述

select CURRENT_TIMESTAMP();

在这里插入图片描述

select now();

在这里插入图片描述

对于datetime类型和timestamp类型的数据,如何向其中插入值呢?

两种类型的数据插入方式没什么区别,使用以下sql语句:

insert into `new` 
VALUES
(1,now()),
(2,'2021-05-22'),
(3,'2021-05-22 17:01:01'),
(4,'20210522170101');

看下结果:
关于mysql中日期格式的默认值问题_第1张图片
结论:
1.若要插入当前时间,可以根据需求使用以上的日期函数,但只有年-月-日格式的日期函数会自动补全时:分:秒,值为00:00:00;若要插入其他日期需使用字符串格式,使用单引号或双引号引起来值,若只写年-月-日,会默认填充时:分:秒为00:00:00

2.不管插入格式是什么样的,结果都是YYYY-MM-DD HH:mm:ss格式显示

你可能感兴趣的:(mysql)