当前位置:网站首页>mysql常用的一些时间函数记录

mysql常用的一些时间函数记录

2022-08-11 10:35:00 蓝枫秋千

  1. 无需参数型

    1. NOW() | CURRENT_TIMESTAMP
      返回当前时间(日期+时分秒):2021-12-27 12:12:12

    2. CURDATE() | CURRENT_DATE() | CURRENT_DATE
      返回当前日期:2021-12-27

    3. CURTIME() | CURRENT_TIME
      返回当前时间:12:12:12

  2. 时间转化型

    1. UNIX_TIMESTAMP(date),日期转为时间戳
    2. FROM_UNIXTIME(date),时间戳转为日期
    3. YEAR(date),返回年份
    4. WEEK(date),返回是一年的第几周
    5. HOUR(time),返回小时值
    6. MINUTE(time),返回分钟值
    7. MONTHNAME(date),返回date的月份名,如December
    8. 选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒(常用)
      SELECT now(),date(now()); -- 日期
      SELECT now(),time(now()); -- 时间
      SELECT now(),year(now()); -- 年
      SELECT now(),quarter(now()); -- 季度
      SELECT now(),month(now()); -- 月
      SELECT now(),week(now()); -- 周
      SELECT now(),day(now()); -- 日
      SELECT now(),hour(now()); -- 小时
      SELECT now(),minute(now()); -- 分钟
      SELECT now(),second(now()); -- 秒
      SELECT now(),microsecond(now()); -- 微秒
      
  3. 时间计算型

    1. 分别为给定的日期date加上(add)或减去(sub)一个时间间隔值expr

      interval是间隔类型关键字
      expr是一个表达式,对应后面的类型

      DATE_ADD(date, INTERVAL expr unit);
      DATE_SUB(date, INTERVAL expr unit);

      unit是时间间隔单位,时间间隔类型如下

    单位描述
    HOUR小时
    MINUTE
    SECOND
    MICROSECOND毫秒
    YEAR
    MONTH
    DAY
    WEEK
    QUARTER季度
    YEAR_MONTH年和月
    DAY_HOUR日和小时
    DAY_MINUTE日和分钟
    DAY_SECOND日和秒
    HOUR_MINUTE小时和分
    HOUR_SECOND小时和秒
    MINUTE_SECOND分钟和秒

    示例

    -- 获取上个月第一天和最后一天
    SELECT DATE_FORMAT(DATE_SUB(now(),INTERVAL 1 month), '%Y-%m-01'), DATE_SUB(DATE_FORMAT(now(), '%Y-%m-01'), INTERVAL 1 day);
    

    2. 获取两个时间的时间差或者是天数差

    1. TIMEDIFF(expr1, expr2):返回两个日期相减(expr1 − expr2 )相差的时间数(两个参数类型必须相同)
    2. DATEDIFF(expr1, expr2):返回两个日期相减(expr1 − expr2 )相差的天数
  4. 个性化展示

    1. 返回日期在一周、一月、一年中是第几天

      1. 一周的第几天:dayofweek(date)
      2. 一月的第几天:dayofmonth(date)
      3. 一年的第几天:dayofyear(date)
    2. 返回日期的星期和月份名称

      名称是中文or英文的由系统变量lc_time_names控制(默认值是’en_US’)

      mysql> show variables like 'lc_time_names';
      +---------------+-------+
      | Variable_name | Value |
      +---------------+-------+
      | lc_time_names | en_US |
      +---------------+-------+
      1 row in set (0.00 sec)
      
      mysql> select dayname(now()),monthname(now());
      +----------------+------------------+
      | dayname(now()) | monthname(now()) |
      +----------------+------------------+
      | Monday         | January          |
      +----------------+------------------+
      1 row in set (0.00 sec)
      
      mysql> set lc_time_names='zh_CN';
      Query OK, 0 rows affected (0.00 sec)
      
      mysql> select dayname(now()),monthname(now());
      +----------------+------------------+
      | dayname(now()) | monthname(now()) |
      +----------------+------------------+
      | 星期一         | 一月             |
      +----------------+------------------+
      1 row in set (0.00 sec)
      
原网站

版权声明
本文为[蓝枫秋千]所创,转载请带上原文链接,感谢
https://lanfengqiuqian.blog.csdn.net/article/details/122179608