MySQL 日期类型及默认设置
2016-12-02 17:22
267 查看
MySQL 日期类型及默认设置
之前在用 MySQL 新建 table,创建日期类型列时遇到了一些问题,现在整理下来以供参考。MySQL 的日期类型如何设置当前时间为其默认值?
答:请使用 timestamp 类型,且 默认值设为 now() 或 current_timestamp() 。
MySQL 日期类型及默认设置
日期类型区别及用途
日期类型的 default 设置
常见的日期获取函数
其他的内容
日期类型区别及用途
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();
or
ts_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP();
根据上表可知,除了 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();
都会报错。所以想要设置某个日期列的默认值为当前时间,只能使用 timestamp 类型,并设置 DEFAULT NOW() 或 DEFAULT CURRENT_TIMESTAMP() 作为默认值。
date 类型默认值使用 current_date() 创建失败
date 类型默认值使用 now() 创建失败
date 类型默认值使用 current_timestamp() 创建失败
datetime 类型默认值使用 current_timestamp() 创建失败
datetime 类型默认值使用 now() 创建失败
timestamp 类型默认值使用 now() 创建成功
常见的日期获取函数
MySQL中有一些日期函数可供我们使用,我们可以使用 ” select 函数名() ; ” 的 sql 查看它们的返回值。同时也可以使用 “select 自定义函数名();”,调用我们自己定义的函数。Eample:
select current_timestamp();
select current_date();
select current_time();
select now();
参照“w3School相关内容”,其他常见的日期函数如下
函数 | 描述 |
---|---|
NOW() | 返回当前的日期和时间 |
CURDATE() | 返回当前的日期 |
CURTIME() | 返回当前的时间 |
DATE() | 提取日期或日期/时间表达式的日期部分 |
EXTRACT() | 返回日期/时间按的单独部分 |
DATE_ADD() | 给日期添加指定的时间间隔 |
DATE_SUB() | 从日期减去指定的时间间隔 |
DATEDIFF() | 返回两个日期之间的天数 |
DATE_FORMAT() | 用不同的格式显示日期/时间 |
其他的内容
更多的MySQL Date 类型或 Date 处理函数,请移步:MySQL 数据类型 – 菜鸟教程网
SQL Date 函数 – W3School
MySQL日期时间函数大全 – zeroone
相关文章推荐
- MySQL 日期类型及默认设置
- MySQL 日期类型及默认设置 (除timestamp类型外,系统不支持其它时间类型字段设置默认值)
- MySQL datetime数据类型设置当前时间为默认值
- MySQL中的data too long for column 和 日期时间的默认值当前时间设置
- MySQL datetime数据类型设置当前时间为默认值
- MySql中时间类型无法设置默认0000-00-00的解决方法
- HQL日期类型String转data类型 方言设置为mysql 用mysql内置函数
- mysql新建表datetime类型字段不能设置当前默认时间解决方法
- 解决mysql 数据库中日期类型00:00:00 的问题 设置xml数据类型:java.util.Date
- MySql中时间类型无法设置默认0000-00-00的解决方法(PHP)
- mysql中datetime类型设置默认值方法
- 关于Mysql的日期类型字段设置默认值为当前日期的解决方案
- MySql中时间类型无法设置默认0000-00-00的解决方法
- MySQL datetime数据类型设置当前时间为默认值
- 如何设置MySql默认的日期格式
- MySql和Oracle的建表即约束设置不同[日期类型的默认值设置方式不同]
- 解决mysql 数据库中日期类型00:00:00 的问题 设置xml数据类型:java.util.Date
- Mysql 默认字符集设置方法(免安装版)
- Mysql默认设置的危险性分析第1/2页
- Mysql(免安装版)设置默认字符集