zoukankan      html  css  js  c++  java
  • Mysql的日期函数之curdate、date_add、date_sub、datediff、timediff

    本篇主要讲述Mysql的curdate、curtime、date_add、date_sub、datediff、timediff等函数。

    1. 获取当前的日期时间:now

    select now();  #获取当前的日期时间

    2. 当前日期、时间:curdate、curtime

    select curdate();   # 当前日期
    
    select curtime();   # 当前时间

    3.  日期加减:date_add、date_sub,讲述date_add,则date_sub与此类似。

    select date_add(now(),interval '2' day);  #后2天
    select date_add(now(),interval '2' hour);
    select date_add(now(),interval '2' minute);
    select date_add(now(),interval '2' second);
    select date_add(now(),interval '2' week);
    select date_add(now(),interval '2' month);
    select date_add(now(),interval '2' quarter); #季度
    select date_add(now(),interval '2' year);
    select date_add(now(),interval '2:10:40' hour_second); #可以一次性从时分秒分别变化
    select date_add(now(),interval '-2:10:40' hour_second); #可以一次性从时分秒分别变化,负号表示减,过去的时刻

    函数形式:DATE_ADD(date,INTERVAL expr unit)  ——  DATE_SUB(date,INTERVAL expr unit)

    expr:表示时间间隔值

    unit:单位

    date_sub参数参考date_add即可

    其中,unit的取值可以为:

    4. 日期差异函数:datediff

    select datediff('2020-02-20', '2020-01-30')  #前面的日期减去后面的日期,返回天数
    select datediff('2020-02-20', '2020-04-10')  #前面的日期减去后面的日期,返回天数
    select datediff('2020-02-20 08:20:30', '2020-04-10 10:54:43')  #参与运算的是日期

    5. timediff(该函数的结果有范围限制)与 timestampdiff —— 更强大

    # timediff
    select timediff('12:23:10','10:10:35') diff_time;  #时间差,时分秒,但是该函数的结果有范围限制,只从:从-838:59:59到838:59:59
    select timediff('2020-02-02 12:00:00','12:00:00') as diff_time;   #前后格式不一致时,为Null 
    select timediff('2020-01-01 00:00:00', '2020-04-01 00:00:00') as diff_hour; #结果有误,因为超出限制,事实上,3个月的时间,值远比结果大,要得到正确的,可以用timestampdiff # 功能最多的方式可以是:timestampdiff select timestampdiff(hour, '2020-01-01 00:00:00', '2020-04-01 00:00:00') as diff_hour; #返回的是相差的小时 select timestampdiff(day, '2020-01-01 00:00:00', '2020-02-01 00:00:00') as diff_day; #返回的是相差的天数 select timestampdiff(month, '2020-01-01 00:00:00', '2020-02-01 00:00:00') as diff_month; #返回的是相差的月份 select timestampdiff(year, '2020-01-01 00:00:00', '2020-02-01 00:00:00') as diff_year; #返回的是相差的年份 select timestampdiff(second, '2020-01-01 01:10:10', '2020-01-01 00:00:00') as diff_second; #返回的是相差的秒数 select timestampdiff(minute, '2020-01-01 01:10:10', '2020-01-01 00:00:00') as diff_minute; #返回的是相差的分钟

     

    Mysql更多时间相关函数、时间戳等可参考:

    https://www.cnblogs.com/qi-yuan-008/p/11878640.html

    参考:

    https://www.runoob.com/sql/func-date-add.html

    https://www.cnblogs.com/jpfss/p/11131540.html

    https://www.runoob.com/sql/func-datediff-mysql.html

    https://blog.csdn.net/moakun/article/details/82528152

  • 相关阅读:
    vue-amap地图组件的使用
    数据分析
    爬虫之scrapy框架
    爬虫之selenium
    记录一下最近的pwn
    内核提权姿势笔记
    CVE-2016-5343分析
    CVE-2015-8660分析
    Docker远程访问get(root)shell姿势
    Linux内核ROP学习
  • 原文地址:https://www.cnblogs.com/qi-yuan-008/p/12782677.html
Copyright © 2011-2022 走看看