• MySQL学习记录--操作时间数据


    1、返回日期的时间函数

      date_add() : 可以为指定日期增加/减少任意一段时间间隔。下面举例将当前日期增加一个月和减少一个月

    mysql> select date_add(current_date(), interval 1 month) as add_one_month;
    +---------------+
    | add_one_month |
    +---------------+
    | 2016-12-30    |
    +---------------+
    1 row in set (0.00 sec)
    
    mysql> select date_add(current_date(), interval -1 month) as reduce_one_month;
    +------------------+
    | reduce_one_month |
    +------------------+
    | 2016-10-30       |
    +------------------+
    1 row in set (0.00 sec)

      格式:date_add('要修改的时间',interval 数量 时间间隔类型), 下面展示一些常见的时间间隔类型

    间隔名称 描述
    Second 秒数
    Minute 分钟数
    Hour 小时数
    Day 天数
    Month 月份
    Year 年份
    Minute_second 分钟和秒,以":"分隔
    Hour_second 小时、分钟和秒,以":"分隔
    Year_month 年份和月份,以"-"分隔

       下面对时间间隔后三种举例:

      ①、将当前时间增加3小时20分钟

    mysql> select current_timestamp;  -- 当前时间
    +---------------------+
    | current_timestamp   |
    +---------------------+
    | 2016-11-30 15:22:46 |
    +---------------------+
    1 row in set (0.00 sec)
    
    mysql> select date_add(current_timestamp, interval '3:20:00' Hour_second) as add_HourSecond;
    +---------------------+
    | add_HourSecond      |
    +---------------------+
    | 2016-11-30 18:42:49 |
    +---------------------+
    1 row in set (0.00 sec)

      ②、将日期'2000-01-01'增加16年10个月

    mysql> select date_add('2000-01-01', interval '16-10' Year_month) as add_Year_month;
    +----------------+
    | add_Year_month |
    +----------------+
    | 2016-11-01     |
    +----------------+
    1 row in set (0.00 sec)

      

    函数last_day() : 返回所求月份的最后一天

      举例:求"2016-01-01"该月的最后一天

    mysql> select last_day('2016-01-01');
    +------------------------+
    | last_day('2016-01-01') |
    +------------------------+
    | 2016-01-31             |
    +------------------------+
    1 row in set (0.00 sec)

     无论提供的参数是date型还是datetime型,last_day()函数都将返回一个date值

    2、返回字符串的时间函数

      dayname() : 返回所求的日期是星期几

      举例:求当前日期是星期几

    mysql> select dayname(current_date);
    +-----------------------+
    | dayname(current_date) |
    +-----------------------+
    | Wednesday             |
    +-----------------------+
    1 row in set (0.00 sec)

      year()、month()、day()、time()...提取部分时间

    mysql> select year(current_date),month(current_date),day(current_date),time(current_timestamp);
    +--------------------+---------------------+-------------------+-------------------------+
    | year(current_date) | month(current_date) | day(current_date) | time(current_timestamp) |
    +--------------------+---------------------+-------------------+-------------------------+
    |               2016 |                  11 |                30 | 16:12:57                |
    +--------------------+---------------------+-------------------+-------------------------+
    1 row in set (0.00 sec)

    3、返回数字的时间函数

      datediff() : 计算两个日期相隔的天数

      举例:计算"2000-01-01"距离现在有多少天

    mysql> select datediff('2016-11-30', '2000-01-01');
    +--------------------------------------+
    | datediff('2016-11-30', '2000-01-01') |
    +--------------------------------------+
    |                                 6178 |
    +--------------------------------------+
    1 row in set (0.00 sec)

      注:datediff()函数会忽略参数中的时钟值。

        sql server 同样具备datediff()函数,但可以在指定时间间隔的类型(如年、月、日、小时等)。sql server 实现上一个例子的方法:

    select datediff(day, '2016-11-30', '2000-01-01');
  • 相关阅读:
    远程培训数据库迁移
    RMAN系列catalog数据库
    RMAN系列表空间恢复
    典型的一周备份脚本
    [转载]对 Oracle 备份与恢复 的补充说明转自tianlesoft的文章
    RMAN系列基于scn恢复
    使用Profile对用户Session会话进行资源限制
    RMAN系列控制文件、数据文件、redolog全部丢失
    全自动 TSPITR基于RMANLOGSEQ
    Oracle 10g EXPDP和IMPDP使用说明
  • 原文地址:https://www.cnblogs.com/technologylife/p/6118352.html
Copyright © 2020-2023  润新知