美文网首页MySQL
MySQL日期函数

MySQL日期函数

作者: fanderboy | 来源:发表于2022-07-31 19:34 被阅读0次

    1、DATE()

    返回 日期。格式:YYYY-MM-DD

    SELECT DATE(NOW());
    2022-07-31
    

    2、TIME()

    返回 时间。格式:HH-mm-ss

    SELECT TIME(NOW());
    19:00:43
    

    3、TIMESTAMP()

    返回 日期时间。格式:YYYY-MM-DD HH:mm:ss

    SELECT TIMESTAMP(NOW());
    2022-07-31 19:01:40
    

    4、NOW()、CURRENT_TIMESTAMP、CURRENT_TIMESTAMP()、SYSDATE()

    select NOW(),CURRENT_TIMESTAMP,CURRENT_TIMESTAMP();
    2022-07-31 19:03:00 2022-07-31 19:03:00 2022-07-31 19:03:00
    

    这里需要注意前三者都是返回语句执行开始执行的时间,后者SYSDATE()不同返回的是这个函数执行时候的时间

    select SLEEP(1),NOW(),CURRENT_TIMESTAMP,CURRENT_TIMESTAMP(),SYSDATE();
    0   2022-07-31 19:04:16 2022-07-31 19:04:16 2022-07-31 19:04:16 2022-07-31 19:04:17
    

    这里可以看到我们利用sleep(1),让sql延时了一秒得到前三者与SYSDATE()的区别,SYSDATE()明显比NOW()这些多一秒,所以我们可以知道 预期结果是延时前后now()函数对应的时间不变,sysdate()的时间等于之前的时间加上延时时间

    5、STR_TO_DATE()

    根据指定的格式,将字符串转交成对应的日期类型

    SELECT STR_TO_DATE('2022-07-31 19:12:47','%Y-%m-%d');
    2022-07-31
    SELECT STR_TO_DATE('2022-07-31 19:12:47','%Y-%m-%d %H');
    2022-07-31 19:00:00
    

    6、DATE_FORMAT()

    将日期根据指定的格式返回为对应的字符串

    SELECT DATE_FORMAT('2022-07-31 19:12:47','%Y-%m-%d');
    2022-07-31
    SELECT DATE_FORMAT('2022-07-31 19:12:47','%Y-%m-%d %H');
    2022-07-31 19
    SELECT DATE_FORMAT('2022-07-31 19:12:47','%Y-%m-%d %H:%i:%s');
    2022-07-31 19:12:47
    

    日期格式

    格式 描述
    %Y 年,4 位
    %y 年,2 位
    %M 月 英文表示 January
    %b 月 英文缩写表示 Apr
    %m 月,数值(00-12)
    %c 月,数值(0-12)
    %d 月的天,数值(00-31)
    %e 月的天,数值(0-31)
    %j 年的天 (001-366)
    %H 小时 (00-23)
    %I 小时 (01-12) 0时代表12 1时代表1
    %k 小时 (0-23)
    %i 分钟,数值(00-59)
    %S 秒(00-59)
    %s 秒(00-59)
    %f 微秒
    %T 时间, 24-小时 (hh:mm:ss)
    %r 时间,12-小时(hh:mm:ss AM 或 PM)
    %p AM 或 PM
    %a 星期名缩写 例如Mon
    %W 星期名 例如Monday
    %w 周的天 (0=星期日, 6=星期六)
    %U 周 (00-53) 星期日是一周的第一天
    %u 周 (00-53) 星期一是一周的第一天
    %V 周 (01-53) 星期日是一周的第一天,与 %X 使用
    %v 周 (01-53) 星期一是一周的第一天,与 %x 使用
    %X 年,其中的星期日是周的第一天,4 位,与 %V 使用
    %x 年,其中的星期一是周的第一天,4 位,与 %v 使用

    7、UNIX_TIMESTAMP()

    获取日期的时间戳(10位)

    SELECT unix_timestamp(now());
    1659266331
    

    8、FROM_UNIXTIME

    根据时间戳(10位)返回日期

    SELECT FROM_UNIXTIME(1659266331);
    2022-07-31 19:18:51
    #加上第二个参数 格式化
    SELECT FROM_UNIXTIME(1659266331,'%Y-%m-%d %H:%i:%s');
    2022-07-31 19:18:51
    

    9、其他日期函数

    函数名 描述 样例 结果
    NOW() 获取当前日期 格式’yyyy-MM-dd HH:mm:ss’ select NOW(); 2022/4/4 22:50
    CURDATE() 获取当前日期 格式’yyyy-MM-dd’ select CURDATE(); 2022/4/4
    CURTIME() 获取当前日期 格式’HH:mm:ss’ select CURTIME(); 22:50:17
    CURRENT_TIMESTAMP() 获取当前日期 格式’yyyy-MM-dd HH:mm:ss’ select CURRENT_TIMESTAMP(); 2022/4/4 22:50
    CURRENT_DATE() 获取当前日期 格式’yyyy-MM-dd’ select CURRENT_DATE(); 2022/4/4
    CURRENT_TIME() 获取当前日期 格式’HH:mm:ss’ select CURRENT_TIME(); 22:50:17
    CURRENT_TIMESTAMP 获取当前日期 格式’yyyy-MM-dd HH:mm:ss’ select CURRENT_TIMESTAMP; 2022/4/4 22:50
    CURRENT_DATE 获取当前日期 格式’yyyy-MM-dd’ select CURRENT_DATE; 2022/4/4
    CURRENT_TIME 获取当前日期 格式’HH:mm:ss’ select CURRENT_TIME; 22:50:17
    SYSDATE() 获取这个函数的执行时间 格式’yyyy-MM-dd HH:mm:ss’ select SYSDATE; 2022/4/4 22:50
    YEAR() 获取年份 select YEAR(NOW()) ; 2022
    MONTH() 获取月份 select MONTH(NOW()) 4
    DAYOFMONTH() 获取在月份中所在的天数 select DAYOFMONTH(NOW()) 4
    DAYOFYEAR() 获取在年中所在的天数 select DAYOFYEAR(NOW()) 94
    WEEKDAY() 获取日期是星期几 (0-代表星期一、1-代表星期二) select WEEKDAY(NOW()); 0
    DAYOFWEEK() 获取日期是星期几 (1-代表星期天、2-代表星期一) select DAYOFWEEK(NOW()); 2
    WEEKOFYEAR() 获取日期是年中的第几周 select WEEKOFYEAR(NOW()); 14
    TO_DAYS() 获取从0000-00-00到日期的天数 SELECT TO_DAYS(NOW()); 738614
    HOUR() 获取小时 SELECT HOUR(NOW()); 22
    MINUTE() 获取分钟 SELECT MINUTE(NOW()); 50
    SECOND() 获取秒 SELECT SECOND(NOW()); 17

    相关文章

      网友评论

        本文标题:MySQL日期函数

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