[Mysql扫盲]--(1)日期和时间函数

Author:赵志乾
Date:2019-11-24
Declaration:All Right Reserved!!!

使用mysql进行数据管理时,经常会涉及到日期和时间的处理。mysql本身为使用者提供了一系列日期和时间处理函数,方便我们使用。以下是常用的3个日期时间函数

 

1、日期加减函数

应用场景: 基于某一日期时点进行时间偏移计算。比如,给定日期时点A,计算早于或晚于A一段时间间隔的日期时点B。

函数: ADDDATE(date,INTERVAL exp unit)和ADDDATE(date,days)

注:第二个函数其实是第一个函数的特例,只应用于时间间隔为天的偏移计算。而当两个函数中的exp或days取负数时,效果等效于SUBDATE,也就是ADDDATE(date,INTERVAL -|exp| unit)等效于SUBDATE(date,INTERVAL |exp| unit),ADDDATE(date,-|days|)等效于SUBDATE(date,|days|)。

// 示例1: 日期时点延后一日
SELECT ADDDATE('2019-11-24 20:00:00.000',INTERVAL 1 DAY)
结果: 2019-11-25 20:00:00
SELECT ADDDATE('2019-11-24 20:00:00',1)
结果: 2019-11-25 20:00:00

// 示例2: 日期时点提前一日
SELECT ADDDATE('2019-11-24 20:00:00.000',INTERVAL -1 DAY)
结果: 2019-11-23 20:00:00
SELECT ADDDATE('2019-11-24 20:00:00',-1)
结果: 2019-11-23 20:00:00

2、时间加减函数

应用场景: 基于某一(日期)时点进行时间偏移计算。比如,给定(日期)时点A,计算早于或晚于A一段时间间隔的(日期)时点B。

函数:ADDTIME(exp1,exp2)

注: ADDTIME可以看作是ADDDATE的扩展,或者说ADDDATE是ADDTIME的特例。因为ADDDATE要求第一个参数一定是日期时点,而ADDTIME的第一个参数既可以是日期时点,也可以是时间时点。

// 示例1: 日期时点延后1小时30分钟
SELECT ADDTIME('2019-11-24 20:00:00','1:30:00')
结果: 2019-11-24 21:30:00

// 示例2: 时间时点延后1小时30分钟
SELECT ADDTIME('20:00:00','1:30:00')
结果: 21:30:00

// 示例3: 日期时点延后1天
SELECT ADDTIME('2019-11-24 20:00:00','1 00:00:00')
结果: 2019-11-25 20:00:00

// 示例4: 时间时点延后1天
SELECT ADDTIME('20:00:00','1 00:00:00')
结果: 44:00:00

注意示例3和示例4之间的区别

3、日期提取函数

应用场景: 获取日期当日零点,即清除时分秒等数据。

函数: DATE(exp)

// 示例1: 提取日期时点当日零点
SELECT DATE('2019-11-24 20:00:00')
结果: 2019-11-24

// 示例2: 判定DATE函数是否是清零时分秒
SELECT DATE('2019-11-24 20:00:00')='2019-11-24 00:00:00'
结果: 1

 

参考资料:《mysql技术文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫白小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值