Mysql常用的时间日期函数

0 前言

     时间日期函数在数据库查询中被频繁使用,不同的数据库之间差别不是很大,掌握时间日期函数对我们处理业务具有重要意义,本文针对Mysql数据库经常出现的时间日期函数进行总结,方便读者在日后使用中进行查阅。

1 获取当前时刻的时间函数

     1.1 返回当前时刻的时间

select now()

     1.2  获取当前时刻的年月日

select curdate()

     或者采用下面的方式:

select date(now())

    (1)获取年

select year(now())

    (2)获取月份

select month(now())

    (3)获取当前日期中的日

select day(now())

    1.3 获取当前时刻的时分秒

select curtime()
select time(now())

      

    (1)获取当前时刻的小时时间    

select hour(now())

   (2) 获取分钟

select minute(now())

   (3)获取秒

select second(now())

    1.4 获取当前时刻的所在的周数

             一般全年有52周(365天/7),有时候也可能是53周,如果我们想看下当前时刻是全年中的第几周,可以使用weekofyear()函数

select weekofyear(now())

     1.5 获取当前是一周内的周几

        如过要获取当天是一周内的周几要使用dayofweek()函数,注意该函数将星期天作为每周的周一,所以与我们平时的时间稍有差别

select dayofweek(now())

    1.6 extract函数返回当前日期中所在的年、月、日等

       具体用法如下:

extract(unit from datetime)

    (1)datetime表示具体的时间日期,

      (2)unit表示要从datetime中返回的单独的部分。unit值是指定的参数值:year,month,day,hour,minute,second,week等

select now()

select
     extract(year from now())  as year
    ,extract(month from now()) as month
    ,extract(day from now())   as day

2 日期之间的时间运算

   2.1 计算当前时间的向后偏移时间

      采用date_add函数

date_add(date,interval num unit)

     date表示用户传入的当前时间,interval是一个固定的参数,num为用户传入的间隔数,unit表示用户需要偏移的单位,如往后移动7天,7月,7年,7时,7分,7秒等。例如:

select 
    "2020-03-11" as cur_time
    ,date_add("2020-03-11",interval 7 day) as after_7_day
    ,date_add("2020-03-11",interval 7 month) as after_7_month
    ,date_add("2020-03-11",interval 7 year) as after_7_year

    2.2 计算当前时间的向前偏移时间

      如获取今天之前的若干天的时间。采用date_sub()函数。date_sub()函数与date_add函数使用方法是一样的。

select 
    "2020-03-11" as cur_time
    ,date_sub("2020-03-11",interval 7 day) as before_7_day
    ,date_sub("2020-03-11",interval 7 month) as before_7_month
    ,date_sub("2020-03-11",interval 7 year) as before_7_year

     2.3 两日期做差

datediff(end_date,start_date)

      例如:

select datediff("2020-03-11","2020-03-01")

3 日期格式转换   

    Sql中我们常常利用date_format()函数对日期进行格式化,date_format()函数的格式如下:

date_format(datetime,format)

   (1)%Y-%m-%d:年-月-日

select date_format(now(),"%Y-%m-%d")

    (2) %H:%i:%S:时:分:秒

select date_format(now(),"%H:%i:%S")

发布了12 篇原创文章 · 获赞 169 · 访问量 6234

猜你喜欢

转载自blog.csdn.net/godlovedaniel/article/details/104794164
今日推荐