美文网首页
MySQL白菜教程(Level 4)

MySQL白菜教程(Level 4)

作者: 七喜丶 | 来源:发表于2021-08-16 11:21 被阅读0次

    时间函数

    • 使用 NOW() 、 CURDATE()、CURTIME() 获取当前时间
      在 SQL 中,我们可以通过使用 NOW()CURDATE()CURTIME() 来获取当前的时间
      NOW() 可以用来返回当前日期和时间 格式:YYYY-MM-DD hh:mm:ss
      CURDATE()可以用来返回当前日期 格式:YYYY-MM-DD
      CURTIME() 可以用来返回当前时间 格式:hh:mm:ss

    在使用 NOW()CURTIME() 时,如果要精确的秒以后的时间的话,可以在()中加数字,加多少,就表示精确到秒后多少位
    比如 NOW(3) 就是精确到毫秒,表示为:2021-03-31 15:27:20.645

    语法:

    select now() | curdate() | curtime();
    

    实例如下:

    mysql> select now() as now, curdate() as nowDate, curtime(3) as nowTime;
    +---------------------+------------+--------------+
    | now                 | nowDate    | nowTime      |
    +---------------------+------------+--------------+
    | 2021-08-16 10:16:46 | 2021-08-16 | 10:16:46.624 |
    +---------------------+------------+--------------+
    1 row in set (0.01 sec)
    
    • 使用 DATE()、TIME() 函数提取日期和时间
      将时间中的代表日期的元素和代表时间的元素从时间中提取出来

    语法:

    select date(`data`) | time(`data`) ;
    

    实例如下:

    mysql> select date('2020-08-16 10:16:46') as date, time('2021-08-16 11:16:46') as time;
    +------------+----------+
    | date       | time     |
    +------------+----------+
    | 2020-08-16 | 11:16:46 |
    +------------+----------+
    1 row in set (0.00 sec)
    
    • 使用 EXTRACT() 函数提取指定的时间信息
      EXTRACT() 函数用于返回日期/时间的单独部分,如YEAR (年)、MONTH(月)、DAY(日)、HOUR (小时)、MINUTE (分钟)、 SECOND (秒)

    语法:

    select extract(unit from date) from table ;
    

    其中:
    table 是表格名
    date 参数是合法的日期表达式。
    unit 参数是需要返回的时间部分,如 YEARMONTHDAYHOURMINUTESECOND

    在一般情况下,EXTRACT(unit FROM date) 与 unit() 的结果相同

    实例如下:

    mysql> select extract(hour from '2020-08-16 10:16:46');
    +------------------------------------------+
    | extract(hour from '2020-08-16 10:16:46') |
    +------------------------------------------+
    |                                       10 |
    +------------------------------------------+
    1 row in set (0.01 sec)
    
    • 使用 DATE_FORMAT() 格式化输出日期
      SQL 中使用 DATE_FORMAT() 方法来格式化输出 date/time
      需要注意的是 DATE_FORMAT() 函数返回的是字符串格式

    语法:

    select date_format(date, format) ;
    

    其中
    date一个有效日期
    format 是 date/time 的输出格式

    输出格式 表示含义
    %Y 表示年的全称(2000-08-16)
    %y 表示年的后两位 (00)
    %M 表示月的英式表达 (August)
    %m 表示月 (08)
    %D 表示日的英式表达 (16th)
    %d 表示日 (16)
    %H or %h 表示小时
    %i 表示分钟
    %S or %s 表示秒
    %W 表示周几的英式表达
    %w 表示周几数字

    实例如下

    mysql> select date_format('2000-08-16 10:16:46', '%Y-%m-%d %h:%i:%s') as date, date_format('2000-08-16 10:16:46', '%W %w') as week;
    +---------------------+-------------+
    | date                | week        |
    +---------------------+-------------+
    | 2000-08-16 10:16:46 | Wednesday 3 |
    +---------------------+-------------+
    1 row in set (0.00 sec)
    
    • 使用 DATE_ADD() 增加时间
      DATE_ADD() 函数是常用的时间函数之一,用于向日期添加指定的时间间隔

    语法:

    select date_add(date, INTERVAL expr type) from table_name ;
    

    其中:
    date指代希望被操作的有效日期,为起始日期
    expr 是希望添加的时间间隔的数值(expr 是一个字符串,对于负值的间隔,可以以 ”-“ 开头)
    type 是具体的数据类型,表示加上时间间隔的单位(可以是 MICROSECOND , SECOND , MINUTE , HOUR , DAY , WEEK , MONTH , QUARTER , YEAR 等)

    实例如下

    mysql> select date_add('2000-08-16 10:16:46', interval 1 year) as changeDate;
    +---------------------+
    | changeDate          |
    +---------------------+
    | 2001-08-16 10:16:46 |
    +---------------------+
    1 row in set (0.00 sec)
    
    • 使用 DATE_SUB() 减少时间
      DATE_SUB() 函数是常用的时间函数之一,用于从日期减去指定的时间间隔。它与 DATE_ADD() 函数具有相似的用法

    语法:

    select date_sub(date, INTERVAL expr type) from table_name ;
    

    其中:
    date指代希望被操作的有效日期,为起始日期
    expr 是希望添加的时间间隔的数值(expr 是一个字符串,对于负值的间隔,可以以 ”-“ 开头)
    type 是具体的数据类型,表示加上时间间隔的单位(可以是 MICROSECOND , SECOND , MINUTE , HOUR , DAY , WEEK , MONTH , QUARTER , YEAR 等)

    实例如下

    mysql> select date_add('2000-08-16 10:16:46', interval 1 year) as changeDate;
    +---------------------+
    | changeDate          |
    +---------------------+
    | 2019-08-16 10:16:46 |
    +---------------------+
    1 row in set (0.00 sec)
    
    • ** 使用时间函数 DATEDIFF() 和 TIMESTAMPDIFF() 计算日期差**
      DATEDIFF ()
      DATEDIFF() 常用的日期差,在 MySQL 中默认只能计算天数差

    语法:
    DATEDIFF(时间1, 时间2):差值计算规则:时间 1 - 时间 2

    select datediff(时间1, 时间2) from table_name;
    

    TIMESTAMPDIFF()
    语法:
    TIMESTAMPDIFF(type, 时间1, 时间2):差值计算规则:时间 2 - 时间 1
    type: YEAR(年差)、MONTH(月差)、DAY(天差)、WEEK(周差)、HOUR(时差)

    select datestampdiff(type, 时间1, 时间2);
    

    相关文章

      网友评论

          本文标题:MySQL白菜教程(Level 4)

          本文链接:https://www.haomeiwen.com/subject/wilmbltx.html