Mysql日期格式及内置日期函数

这篇具有很好参考价值的文章主要介绍了Mysql日期格式及内置日期函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、MySQL中的日期时间类型

  1. MySQL中常用的几种时间类型有:date、datetime、time、year、timestamp

Mysql日期格式及内置日期函数

  1. datetime和timestamp的区别
  • 相同点: 存储格式相同 datetime和timestamp两者的时间格式都是YYYY-MM-DD HH:MM:SS
  • 不同点:
    a. 存储范围不同. datetime的范围是1000-01-01到9999-12-31. 而timestamp是从1970-01-01到2038-01-19, 即后者的时间范围很小.
    b. 与时区关系. datetime是存储服务器当前的时区. 而timestamp类型,是将服务器当前时间转换为UTC(世界时间)来存储.即datetime与时区无关,存什么,返回什么. 而timestamp存储的时间,返回的时间会随着数据库的时区不同而发生改变.
  1. 详细解释
  • datetime : 时间日期型,格式是YYYY-mm-dd HH:ii:ss,表示的范围是从1000到9999。但是有零值,0000-00-00 00:00:00;
  • date:日期,就是datetime中的date部分;
  • time:时间(段),指定的某个区间之间,从-时间到+时间(有负时间表示);
  • timestamp:时间戳,并不是常规意义时间戳(如:14253685),范围是’1970-01-01 00:00:00’到2037年。格式为YYYY-mm-dd HH:ii:ss,格式与datetime完全一致;
  • year:yy和yyyy,yyyy的范围是1901-2155,yy的范围是1970-2069。

两位year(00-69表示2000-2069,70-99表示1970~1999)。当应用只需要记录年份时,year比date更省空间

create table my_date(
	d1 datetime,
	d2 date,
	d3 time,
	d4 timestamp,
	d5 year
)charset utf8;

描述表:
Mysql日期格式及内置日期函数
测试表

insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','11:50:54','2015-09-28 11:51:08','2015');
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','-11:50:54','2015-09-28 11:51:08','2015');-- -11
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','-211:50:54','2015-09-28 11:51:08','2015');-- -2 11
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','-2 11:50:54','2015-09-28 11:51:08','2015');-- -2过去两天
#year用69标识-2069
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','11:50:54','2015-09-28 11:51:08','69');-- 69
#year用70标识-1970
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','11:50:54','2015-09-28 11:51:08','70');-- 70
insert into my_date VALUES(now(),now(),now(),now(),now());-- 70

Mysql日期格式及内置日期函数

二、mysql中获取时间戳

select UNIX_TIMESTAMP();

Mysql日期格式及内置日期函数

三、mysql中datetime类型的长度位数

通常我们MySQL中设计datetime类型长度都默认为0:这时插入时间通常会是我们常见到的:2020-08-29 12:52:16格式。但是如果datetime(n)中的n不为0呢?

create table my_date(
	datetime datetime,
	datetime2 datetime(2),
	date date,
	time time,
	timestamp timestamp,
	year year
)charset utf8;

Mysql日期格式及内置日期函数

四、mysql常用时间函数

  1. 获取当前时间
  • now()
  • sysdate()
  • current_timestamp()

Mysql日期格式及内置日期函数

sysdate() 日期函数和 now() 类似, 不同之处在于: now() 在执行开始的时候就得到值了, sysdate() 在函数执行时动态得到的值,例子如下:

Mysql日期格式及内置日期函数

  1. 时间转换函数(字符串转时间,时间转字符串)
  • 日期/时间转字符串函数: date_format(date, format)(可以格式日期和时间), time_format(time, format)(可以格式时间)

Mysql日期格式及内置日期函数
Mysql日期格式及内置日期函数

  • 字符串转换日期 函数: str_to_date(str, format)
    Mysql日期格式及内置日期函数
    可以看出, str_to_date(str, format) 转换函数, 可以把一些杂乱无章的字符串转换为日期格式.

  • 日期, 天数转换函数: to_days(date), from_days(days),to_days():返回的是一个天数!从年份 0 开始的天数,from_days(days)作用与to_days相反。

Mysql日期格式及内置日期函数

  • 时间, 秒 转换函数: time_to_sec(time), sec_to_time(seconds)

Mysql日期格式及内置日期函数
两个函数是相互的

  • 设定日期, 时间函数: makedate(year, dayfoyear), maketime(hour, minute, second)
    Mysql日期格式及内置日期函数
  • 时间戳, 日期转换函数: unix_timestamp(), unix_timestamp(date), from_unixtime(unix_timestamp), from_unixtime(unix_timestamp, format)
# 当前时间戳
select unix_timestamp();
# 指定时间的时间戳
select unix_timestamp('2020-09-09 12:00:00');
# 时间戳转换成日期
select from_unixtime(1599624000);
# 时间戳转换成指定格式日期
select from_unixtime(1599624000, '%Y-%D-%M %h:%i:%s');

Mysql日期格式及内置日期函数

五、日期时间计算函数

  • 日期增加一个时间间隔函数: date_add()
set @dt = now();
# 增加一天
select date_add(@dt, interval 1 day);
# 增加一小时
select date_add(@dt, interval 1 hour);
# 增加一周
select date_add(@dt, interval 1 week);
# 增加一季度
select date_add(@dt, interval 1 quarter);
# 增加一天
select date_add(@dt, interval -1 day);
  • 为指定日期减去一个时间间隔函数: date_sub(),用法如上。
  • 两个日期, 时间相减函数: datediff(date1, date2), timediff(time1, time2)

Mysql日期格式及内置日期函数

  • 时间戳 (timestamp) 转换, 增加, 减少函数: timestamp(date), timestamp(dt, time), timestampadd(unit, interval, datetime_expr), timestampdiff(unit, datetime_expr1, datetime_expr2)

# timestamp(date)
mysql> select timestamp('2020-09-09');
+-------------------------+
| timestamp('2020-09-09') |
+-------------------------+
| 2020-09-09 00:00:00     |
+-------------------------+
1 row in set (0.00 sec)

# timestamp(dt, time)
mysql> select timestamp('2020-09-09 09:00:00', '01:00:00');
+----------------------------------------------+
| timestamp('2020-09-09 09:00:00', '01:00:00') |
+----------------------------------------------+
| 2020-09-09 10:00:00                          |
+----------------------------------------------+
1 row in set (0.00 sec)

# timestampadd(unit, interval, datetime_expr)
mysql> select timestampadd(day, 1, '2020-09-09 09:00:00');
+---------------------------------------------+
| timestampadd(day, 1, '2020-09-09 09:00:00') |
+---------------------------------------------+
| 2020-09-10 09:00:00                         |
+---------------------------------------------+
1 row in set (0.00 sec)


# timestampdiff(unit, datetime_expr1, datetime_expr2), 返回结果以天为单位
mysql> select timestampdiff(day, '2020-09-09', '2020-09-01');
+------------------------------------------------+
| timestampdiff(day, '2020-09-09', '2020-09-01') |
+------------------------------------------------+
|                                             -8 |
+------------------------------------------------+
1 row in set (0.00 sec)

# 返回结果以小时为单位
mysql> select timestampdiff(hour, '2020-09-09 09:00:00', '2020-09-01 08:00:00');
+-------------------------------------------------------------------+
| timestampdiff(hour, '2020-09-09 09:00:00', '2020-09-01 08:00:00') |
+-------------------------------------------------------------------+
|                                                              -193 |
+-------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select datediff('2020-09-09', '2020-09-01');
+--------------------------------------+
| datediff('2020-09-09', '2020-09-01') |
+--------------------------------------+
|                                    8 |
+--------------------------------------+
1 row in set (0.00 sec)

timestampdiff() 函数就比 datediff() 功能强多了,datediff() 只能计算两个日期(date)之间相差的天数文章来源地址https://www.toymoban.com/news/detail-407018.html

到了这里,关于Mysql日期格式及内置日期函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL】MySQL中的日期和时间函数有哪些?元宵节杭州灯光烟花秀你去看了吗?

    大家好,我是小冷。 今天元宵节, 元宵节 ,又称 上元节 、小正月、元夕或灯节 ,是春节之后的第一个重要节日,中国古俗 中,上元节(天官节、元宵节)﹑中元节(地官节、盂兰盆节)﹑下元节(水官节)合 称 三元 。传统习俗 出门赏月、喜猜灯谜、共吃元宵 等。 观赏

    2024年02月07日
    浏览(46)
  • 【MySql】 深入理解SQL中的日期处理:NVL和TIMESTAMPDIFF函数的应用

    还有多少个十年 能勇敢做热血青年 还有多少个十年 能坚持当初的信念 还有多少个十年 能不忘怀回忆点点                      🎵 《还有多少个十年》 在处理数据库时,日期和时间的操作是日常任务中最常见且关键的部分之一。无论是过滤数据、生成报告还是执

    2024年04月25日
    浏览(38)
  • [MySQL]MySQL内置函数

    常用日期函数如下: 函数名称 描述 current_date() 获取当前日期 current_time() 获取当前时间 current_timestamp() 获取当前时间戳 now() 获取当前日期时间 date(datetime) 获取datetime参数的日期部分 date_add(date, interval d_value_type) 在date中添加日期或时间,interval后的数值单位可以是:year、mon

    2024年02月15日
    浏览(38)
  • MySQL - 第7节 - MySQL内置函数

    目录 1.日期函数 1.1.常用的日期函数 1.2.current_date函数 1.3.current_time函数 1.4.current_timestamp函数 1.5.now函数 1.6.date函数 1.7.date_add函数 1.8.date_sub函数 1.9.datediff函数 1.10.综合案例 2.字符串函数 2.1.常用的字符串函数 2.2.charset函数 2.3.concat函数 2.4.instr函数 2.5.ucase函数 2.6.lcase函数 2.7.

    2024年02月10日
    浏览(32)
  • 【MySQL系列】MySQL内置函数的学习

    「前言」文章内容大致是对MySQL内置函数的学习。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 常见的日期函数如下: 函数名称 描述 current_date() 获取当前日期 current_time() 获取当前时间 current_timestamp() 获取当前时间戳 now() 获取当前日期时间 date(datetime) 获取

    2024年02月12日
    浏览(43)
  • MySQL中日期格式化详解

    日期在数据库中是一个常见且重要的数据类型,在MySQL中,我们可以使用各种函数和格式化选项来处理和显示日期。本文将详细介绍MySQL中的日期格式化方法,并提供相应的源代码示例。 DATE_FORMAT函数 DATE_FORMAT函数是MySQL中用于格式化日期的常用函数。它接受两个参数:日期值

    2024年02月06日
    浏览(45)
  • 【MySQL】内置函数

    日期函数 获得年月日: 获得时分秒: 获得时间戳: 同时使用 current_date 和 current_time 就相当于 current_timestamp 在日期的基础上加日期: 在日期的基础上减去时间: 计算两个日期之间相差多少天: 获取时间戳中的日期 创建生日表 创建留言表 字符串函数 查看字符串的字符集

    2024年02月15日
    浏览(36)
  • 《MySQL》内置函数

    函数名称 功能 current_date() 当前日期(yyyy-mm-dd) current_time() 当前时间(hh-mm-ss) current_timestamp() 当前时间戳(yyyy-mm-dd hh-mm-ss) now() 当前日期时间 date(datetime) 返回datetime参数的日期部分 date_add(date, interval d_value_type) 返回date加上d的日期时间,d可以是天、时、分、秒 date_sub(dat

    2024年02月13日
    浏览(40)
  • MySQL数据库:内置函数

    规定:日期:年月日       时间:时分秒 函数名称 作用描述 current_date() 当前日期 current_time() 当前时间 current_timestamp() 当前时间戳 date(datetime) 返回datetime参数的日期部分 date_add(date,interval d_value_type) 在date中添加时间或日期。interval后面可以是year、day、minute、second date_sub(da

    2024年02月11日
    浏览(47)
  • 【MySQL学习笔记】(七)内置函数

    获得当前年月日 获得当前时分秒 获得当前时间戳 mysql中该函数会自动将时间戳转化为年月日时分秒的格式 date(datetime),返回 datetime 参数中的日期部分(年月日部分) 在日期的基础上加上日期 在日期的基础上减去日期 计算两个日期相差多少天 创建一张表,记录生日 添加当前

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包