• mysql计算两个日期之间的天数


    MYSQL自带函数计算给定的两个日期的间隔天数

     
    有两个途径可获得
     
    1、利用TO_DAYS函数
     
    select to_days(now()) - to_days('20120512')
     
    2、利用DATEDIFF函数
     
    select datediff(now(),'20120512')
     
    参数1 - 参数2 等于间隔天数
     
    3、利用TIMESTAMPDIFF函数

    计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() 实现。

    函数 TimeStampDiff() 是MySQL本身提供的可以计算两个时间间隔的函数,语法为:

    TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

    返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其中unit单位有如下几种,分别是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR 。该参数具体释义如下:

    FRAC_SECOND   表示间隔是毫秒
    SECOND   秒
    MINUTE   分钟
    HOUR   小时
    DAY   天
    WEEK   星期
    MONTH   月
    QUARTER   季度
    YEAR   年

    例如:

    #计算两日期之间相差多少周

    select timestampdiff(week,'2011-09-30','2015-05-04');

    #计算两日期之间相差多少天

    select timestampdiff(day,'2011-09-30','2015-05-04');

    另外计算两日期或时间之间相差多少天还可以使用 to_days 函数,但是该函数不用于阳历出现(1582)前的值,原因是当日历改变时,遗失的日期不会被考虑在内。因此对于1582 年之前的日期(或许在其它地区为下一年 ), 该函数的结果实不可靠的。具体用法如:

    to_days(end_time) - to_days(start_time);
      
    #计算两日期/时间之间相差的秒数:

    select timestampdiff(SECOND,'2011-09-30','2015-05-04');

    另外还可以使用 MySql 内置函数 UNIX_TIMESTAMP 实现,如下:

    SELECT UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time); 
      
    #计算两日期/时间之间相差的时分数: 

    select timestampdiff(MINUTE,'2011-09-30','2015-05-04');

    另外还可以如下实现:

    SELECT SEC_TO_TIME(UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time));
  • 相关阅读:
    css实现导航栏切换动画
    ubuntu系统下mysql重置密码和修改密码操作
    Ubuntu16.04 安装配置nginx,实现多项目管理、负载均衡
    每天一点点之数据结构与算法
    vuex基本使用
    在 npm 中如何用好 registry
    django模板
    skywalking 通过python探针监控Python 微服务应用性能
    Centos7新加磁盘扩容根分区
    python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
  • 原文地址:https://www.cnblogs.com/vofill/p/7216411.html
Copyright © 2020-2023  润新知