mysql的date_format函数与日期运算

学习java的时候有DateFormat,里面有日期格式化的格式,什么'%Y'代表四位的年之类的,总是记不住,去查文档吧,一大堆介绍让我感到眼花缭乱的。后来又接触到mysql的date_format函数,又是一大堆,而且大部分的格式我也用不到,所以在这里做个简洁的记载,顺便写几个例子吧。

      mysql的date_format函数功能:可以让我们获取日期的任意一部分,包括年月日时分秒以及微秒以及今天是周几等信息。

      格式:date_format(要处理的日期,格式)

以“2017-10-09 00:53:34”日期为例来进行说明:

格式含义
%Y/%y4位年/2位年
%m月(01-12)
%d 月(01-12)
%H/%h/%I24小时制(00-23)/12小时制(01-12)/12小时制(01-12)
%i分钟(00-59)
%S或者%s秒(00-59)

也不用疑惑,一句sql就搞定:

<span style="color:#000000">SELECT date_format('2017-10-09 00:53:34','%Y/%y-%m-%d %H/%h/%I:%i:%S/%s')  mydate</span>

结果:

image.png

有了这个函数,基本可以不用再去记忆那些种类繁多的函数了。比如:

select DAYOFWEEK('2017-10-09')[作用:返回参数date是星期几,1=星期日,2=星期一,3=星期二......]可以使用select date_format('2017-10-09','%W')达到同样的效果;

select YEAR('2017-10-09')[作用:得到日期的年份]可以使用select date_format('2017-10-09','%Y')达到同样的效果;

select DAYOFYEAR('2017-10-09')[作用:得到日期在当年是第几天]可以使用select  date_format('2017-10-09','%j')做到等等。

是不是感觉mysql的date_format函数既简单又强大,还省去了记忆大量日期函数的繁琐,赶紧get起来吧。

mysql里面的日期是如何运算的,也不用记忆太多,也没有太复杂,确切的来说,掌握mysql的日期运算只需要掌握一个函数就可以了。你道是哪个函数?date_add(要处理的日期,interval 数值或数值表达式   类型)

        什么意思呢?日期的运算,很明显,乘除就不用考虑了,日期只有加减运算,日期的加法可以使用date_add函数,日期的减法可以使用date_sub函数,而日期的加法或减法可以通过改变参数“数值或数值表达式”的正负而间接的通过一个函数来实现,所以前边我才说“掌握mysql的日期运算只需要掌握一个函数就可以了”。

        那么,就来看看date_add这个函数吧,date_sub是类似的,我们下面就以date_add这个函数来做例子了。

        首先,看一下date_add函数的格式:date_add(要处理的日期,interval 数值或数值表达式   类型),它的作用就是对第一个参数“要处理的日期”进行加上或减去一天或者一个小时或者一年或者两天或者两个小时.......。

        然后,我们看一下关于date_add函数的几个问题:

        1.是加上还是减去?

           这要取决于“数值或数值表达式”的正负,为正则是加上,为负则是减去

        2.加上多少?

            这个取决于“数值或数值表达式”的大小,比如是10,就是加上10

        3.是加上10天还是加上10年啊?

            这个取决于参数后边指定的类型,常用的类型有:

year
month
day
hour
minute
second
week

      看下下面的例子:

SELECT date_format(date_add(CURRENT_TIMESTAMP(),interval 1 YEAR),'%Y-%m-%d %H:%i:%s') a,
			date_format(date_add(CURRENT_TIMESTAMP(),interval 1 MONTH),'%Y-%m-%d %H:%i:%s') b,
			date_format(date_add(CURRENT_TIMESTAMP(),interval 1 DAY),'%Y-%m-%d %H:%i:%s') c,
date_format(date_add(CURRENT_TIMESTAMP(),interval 1 HOUR),'%Y-%m-%d %H:%i:%s') d,
date_format(date_add(CURRENT_TIMESTAMP(),interval 1 MINUTE),'%Y-%m-%d %H:%i:%s') e,
date_format(date_add(CURRENT_TIMESTAMP(),interval 1 SECOND),'%Y-%m-%d %H:%i:%s') f,
date_format(date_add(CURRENT_TIMESTAMP(),interval 1 WEEK),'%Y-%m-%d %H:%i:%s') g

     执行结果如图:

image.png

好了,通过这个函数就可以在mysql中对日期进行加减运算了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值