mysql定义多个默认时间类型的字段_MySQL 日期类型及默认设置 (除timestamp类型外,系统不支持其它时间类型字段设置默认值)...

MySQL 日期类型及默认设置

之前在用 MySQL 新建 table,创建日期类型列时遇到了一些问题,现在整理下来以供参考。

MySQL 的日期类型如何设置当前时间为其默认值?

答:请使用 timestamp 类型,且 默认值设为 now() 或 current_timestamp() 。

日期类型区别及用途

MySQL 的日期类型有5个,分别是: date、time、year、datetime、timestamp。

将在“菜鸟教程”和百度获取的资料,整理成如下表格:

类型

字节

格式

用途

是否支持设置系统默认值

date

3

YYYY-MM-DD

日期值

不支持

time

3

HH:MM:SS

时间值或持续时间

不支持

year

1

YYYY

年份

不支持

datetime

8

YYYY-MM-DD HH:MM:SS

日期和时间混合值

不支持

timestamp

4

YYYYMMDD HHMMSS

混合日期和时间,可作时间戳

支持

日期类型的 default 设置

关于 default 设置,通常情况下会使用当前时间作为默认值。

Example:

ts_time timestamp NOT NULL DEFAULT NOW();

1

or

ts_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP();

1

根据上表可知,除了 timestamp 类型支持系统默认值设置,其他类型都不支持。

如果建表语句中有:

ts_time1 time NOT NULL DEFAULT NOW();

ts_time3 yearNOT NULL DEFAULT NOW();

ts_time2 date NOT NULL DEFAULT CURRENT_TIMESTAMP();

ts_time2 datetime NOT NULL DEFAULT CURRENT_TIMESTAMP();

1

2

3

4

都会报错。所以想要设置某个日期列的默认值为当前时间,只能使用 timestamp 类型,并设置 DEFAULT NOW() 或 DEFAULT CURRENT_TIMESTAMP() 作为默认值。

date 类型默认值使用 current_date() 创建失败

fa5fcbe49931d7f8bc0d72aa6ca5349c.png

date 类型默认值使用 now() 创建失败

1aa3273be4995c39145cf5679c23df81.png

date 类型默认值使用 current_timestamp() 创建失败

6c94ecd33230284bb231a496cfbd66a9.png

datetime 类型默认值使用 current_timestamp() 创建失败

47ef7955c020ecee0a8741480385f374.png

datetime 类型默认值使用 now() 创建失败

aeb271421f29f277b2919d20a6e61ecb.png

timestamp 类型默认值使用 now() 创建成功

fdd518247703d43639027eed6ea692af.png

常见的日期获取函数

MySQL中有一些日期函数可供我们使用,我们可以使用 ” select 函数名() ; ” 的 sql 查看它们的返回值。同时也可以使用 “select 自定义函数名();”,调用我们自己定义的函数。

Eample:

select current_timestamp();

1

e1d19ff78ae0b700d3cffa41756beb7d.png

select current_date();

1

3ae01bd8a9bd538b88b1cbad54e18e3f.png

select current_time();

1

42db80215d921bbdc7c267772ae1d9d6.png

select now();

1

1e250f8965656d4df400968b2de6fecb.png

参照“w3School相关内容”,其他常见的日期函数如下

函数

描述

NOW()

返回当前的日期和时间

CURDATE()

返回当前的日期

CURTIME()

返回当前的时间

DATE()

提取日期或日期/时间表达式的日期部分

EXTRACT()

返回日期/时间按的单独部分

DATE_ADD()

给日期添加指定的时间间隔

DATE_SUB()

从日期减去指定的时间间隔

DATEDIFF()

返回两个日期之间的天数

DATE_FORMAT()

用不同的格式显示日期/时间

其他的内容

C#日期时间类型格式化大全集 C#DateTime 类型格式化大全集

日期转化一 为了达到不同的显示效果有时,我们须要对时间进行转化,默认格式为:2007-01-03 14:33:34 ,要转化为其它格式,要用到DateTime.ToString的方法(String, ...

关于mysql字段时间类型timestamp默认值为当前时间问题

今天把应用部署到AWS上发现后台修改内容提交后程序报错,经过排查发现是更新数据的时候,有张数据表中的一个timestamp类型的字段默认值变成了"0000-00-00 00:00:00.00 ...

mysql日期类型默认值'0000-00-00'容错处理

mysql日期默认值'0000-00-00'惹的祸 .net连mysql数据库时,如果表里有字段是日期型且值是‘0000-00-00’时,会报错.在C#里面日期不可能是那样的.或许是最小日期定义的差别 ...

MySql中的时间类型datetime,timestamp,date,year比较

MySQL日期类型.日期格式.存储空间.日期范围比较.日期类型        存储空间       日期格式                 日期范围------------ ---------   ...

Mysql 建表时,日期时间类型选择

mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  D ...

MySQL学习分享-->日期时间类型

日期时间类型 ①如果要用来表示年月日时分秒,一般使用datetime类型: ②如果要用来表示年月日,一般使用date类型: ③如果要表示时分秒,一般使用time类型: ④如果只是表示年份,一般使用ye ...

MySQL之日期时间类型

mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  D ...

mysql的五种日期和时间类型【转载】

[mysql的五种日期和时间类型] mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期 ...

mysql 日期时间类型

datetime timestamp year date time drop table test;create table test (dt datetime, ts timestamp, y ye ...

随机推荐

win10 体验

最近听说win10出了正式版,微软貌似在win10上投入了很大的期望,不知道到底怎么样,实践出真知,小编今天就亲自体验一下! 其实很多人对win8不满意,主要是因为win8 的兼容性不尽人意,小编的电 ...

curl fake ip

curl --header "X-Forwarded-For: 219.137.148.2" "http://www.x.com"

java多线程对CountDownLatch的使用实例

介绍 CountDownLatch是一个同步辅助类,它允许一个或多个线程一直等待直到其他线程执行完毕才开始执行. 用给定的计数初始化CountDownLatch,其含义是要被等待执行完的线程个数. 每 ...

Java系列1 -- 浅谈面向对象

也许每一个计算机专业的人,在大学学习java的时候,老师开始时都会说这么一句话,"Java是一门面向对象的语言".那么面向对象到底是什么,他有什么好处,或者他比其他流行的语言C/C ...

defer 和 async 区别

defer saync 共同点: script 标签属性, 控制脚本加载时间,解决script下载阻塞的问题. 区别: defer:推推推荐! 异步加载,所有元素解析完执行. async: 异步加载, ...

安装elasticsearch-7.0.0(centos)

云主机上需设置root密码 sudo passwd root 回车后出入密码两次 jdk11页面 https://www.oracle.com/technetwork/java/javase/down ...

python 一些方法的时间测试

尝试一些方法的不同实现,比较一下时间,电脑比较渣,不过只是做个比较 虽然用python主要是方便,肯定是不快的,不过能快一点还是快一点好 numpy中大量使用同样 shape 的全 0 array,可 ...

Blender软件基本介绍(3D建模软件)

1.Blender的好处: 1>.开源免费 2>.体积比较小 3>.和Unity的交互比较好(一般建模软件需要导出FBX的文件,然后用到Unity中,而Blender不需要导出,只需 ...

CSS3D写3d画廊滚动

CSS样式表 *{ margin: 0; padding: 0; } .wrapper{ width: 800px; height: 600px; background: #87CEEB; margi ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值