MYSQL日期处理

1. 年月日

1. 当前年月日
  • 三种方式都可直接进行四则运算(如:CURRENT_DATE + 1),运算后返回数据格式为yyyyMMdd

  • 未经运算返回的数据格式为yyyy-MM-dd

1. CURDATE()
2. CURRENT_DATE
3. CURRENT_DATE()
2. 提取年月日
  • 函数中传入time类型数据,提取的年月日为:0000-00-00
  • 函数后可直接进行四则运算(如:DATE(2021-05-14 11:22:52) + 1),运算后返回数据格式为yyyyMMdd
1. DATE(date|datetime|timestamp)
3. 日期加减
1. DATE_ADD(date|datetime|timestamp,INTERVAL exp unit)
		exp为正数时为加,负数为减,不能进行乘除运算
		示例(加):SELECT  DATE_ADD('2017-11-13 20:20:20', INTERVAL '1 1:1:3.1' DAY_MICROSECOND)
		示例(减):SELECT  DATE_ADD('2017-11-13 20:20:20', INTERVAL '- 1 1:1:3.1' DAY_MICROSECOND)
2. DATE_SUB(date|datetime|timestamp,INTERVAL exp unit)
		exp为正数时为减,负数为时间加,不能进行乘除运算
3. 单独使用INTERVAL进行时间加减(运算符必须放在Interval前边)
		select '2017-11-13 20:20:20' -INTERVAL '1 1:1:3.1' DAY_MICROSECOND
4. ADDDATE(date|datetime|timestamp,INTERVAL expr unit),(同DATE_ADD函数)
		select ADDDATE('2017-11-13 20:20:20', INTERVAL '-1 1:1:3.1' DAY_MICROSECOND)
5. ADDDATE(expr,days),只能进行天数的加减
		select ADDDATE('2017-11-13 20:20:20',1)
6. DATEDIFF(expr1,expr2),只能计算两个时间的相差天数,不能精确到时分秒
		select DATEDIFF('2017-11-13 20:20:20','2017-12-13 20:20:21'
  • INTERVAL为关键字,exp为运算数字,unit 为说明符(unit、exp对应格式为图左、右)

在这里插入图片描述

4. 日期格式化
1. DATE_FORMAT(date,format)
		select DATE_FORMAT('2017-11-13 08:20:20','%p %Y-%m-%d %h:%i:%s')
格式化标识符标识符格式化的代表位置位数
%Y4位
%y2位
%M英文月January
%m2位(01-12)
%D带英文后缀的日如1st,2nd
%d2位(01-31)
%H2位,24小时制
%h2位,12小时制
%i2位(00-59)
%S或%s2位(00-59)
%p上午、下午标识PM 或AM
%r时分秒带上、下午标识HH:mm:ss PM形式时间
%W英文当天是周几如Tuesday
%w0-6,0为周日
%j当前日期所在一年中的天数3位(001-366)

2. 时间

1. 当前时间
1. CURTIME()
2. CURRENT_TIME
3. CURRENT_TIME()
2. 时间加减
1. SUBTIME(expr1,expr2),获得前者减去后者后的具体时间
		select SUBTIME('2017-11-13 20:20:20', '20:20:21') = 2017-11-12 23:59:59
		select SUBTIME('2017-11-13 20:20:20', '- 20:20:21') = 2017-11-14 16:40:41
3. 时间转为妙
1. TIME_TO_SEC(time),只读取时间部分进行转换
		select TIME_TO_SEC('2017-11-13 20:20:21') = 73220
		select TIME_TO_SEC('2021-05-17 20:20:21') = 73221

3. 年月日时间

1. 当前年月日时间
1. CURRENT_TIMESTAMP
2. CURRENT_TIMESTAMP()
3. LOCALTIME()
4. LOCALTIME
5. LOCALTIMESTAMP
6. LOCALTIMESTAMP()
7. NOW()
2. 系统年月日时间
1. SYSDATE(),真正的系统时间,不受mysql的SLEEP()等函数的影响
3. 年月日时间加减
1. TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2),unit为精确度,可参考日期部分
		select TIMESTAMPDIFF(SECOND,'2017-11-13 20:20:26','2017-11-13 20:20:23') = -3

4. MYSQL所有时间函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值