• MySQL 中常用的函数


    1. data_format() 格式化日期
    2. concat()
    3. to_days()
    4. date_sub()
    5. year() /month()
    6. quarter()

    一、DATE_FORMAT()

    需求:按照日期月份统计数据,但数据库存储的格式是 '2020-10-01 10:20:45' ,因此需要格式化日期

    语法:

    DATE_FORMAT(date,format)

    第一个参数:指定的日期,第二个参数:需要获取的格式

    格式符 说明
    %a

    工作日的缩写名称  (Sun..Sat)

    %b

    月份的缩写名称  (Jan..Dec)

    %c

    月份,数字形式(0..12)

    %D

    带有英语后缀的该月日期  (0th, 1st, 2nd, 3rd, ...)

    %d

    该月日期, 数字形式 (00..31)

    %e

    该月日期, 数字形式(0..31)

    %f

    微秒 (000000..999999)

    %H

    小时(00..23)

    %h

    小时(01..12)

    %I

    小时 (01..12)

    %i

    分钟,数字形式 (00..59)

    %j

    一年中的第几天 (001..366)

    %k

    小时 (0..23)

    %l(小写L)

    小时 (1..12)

    %M

    月份名称 (January..December)

    %m

    月份, 数字形式 (00..12)

    %p

    上午(AM)或下午( PM)

    %r

    获得时间 ,例如 (10: 11: 43 AM)

    %S

    秒 (00..59)

    %s

    秒 (00..59)

    %T

    时间 , 例如 (10:11:43   不加AM或PM)

    %U 周 (00..53), 其中周日为每周的第一天
    %u 周 (00..53), 其中周一为每周的第一天 
    %V

    周 (01..53), 其中周日为每周的第一天 ; 和 %X同时使用

    %v

    周 (01..53), 其中周一为每周的第一天 ; 和 %x同时使用

    %W

    工作日名称 (周日..周六)

    %w

    一周中的每日 (0=周日..6=周六)

    %X

    该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用

    %x

    该周的年份,其中周一为每周的第一天, 数字形式,4位数;和%v同时使用

    %Y

    年份, 数字形式,4位数

    %y

    年份, 数字形式 (2位数)

    %%

    ‘%’文字字符

    此外,DATE_FORMAT() 函数还可以将指定的格式组合起来写

    比如:

    SELECT DATE_FORMAT('2019-03-09 10:18:37','%Y-%m-%d')
    返回:2019-03-09
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%Y年%m月%d日')
    返回:2019年03月09日

    例如:获取日期的月份

    select DATE_FORMAT(createTime,'%m') from user

    1.查询某年某月某日的数据(主语字符区分大小写)

    select 
    *
    from t_emp
    
    WHERE
        DATE_FORMAT(birthday, '%Y-%m-%d' ) = '2020-11-02';

    参考:

    https://www.w3school.com.cn/sql/func_date_format.asp

    https://blog.csdn.net/weixin_30652879/article/details/97258860

    二、concat()

    在执行模糊查询的SQL 语句中会用到 ‘%’ 拼接,如果是字符串可能会引入 SQL 注入,使用占位符则需要将注入的值与 '%' 拼接 ,用法如下

    SELECT * FROM USER WHERE NAME LIKE concat( '%', '', '%' )

     三、TO_DAYS()

    1.查询今天过生日的人(今天2020-11-04)

    SELECT
        * 
    FROM
        t_emp 
    WHERE
        TO_DAYS( birthday ) = TO_DAYS( CURDATE( ) )

    2.查询昨天过生日的人(如果要包含今天改为小于等于)

    SELECT
        * 
    FROM
        t_emp 
    WHERE
        TO_DAYS(CURDATE()) - TO_DAYS(birthday) = 1

    四、DATE_SUB()

    1.查询最近7天的数据(包含今天)

    SELECT
        * 
    FROM
        t_emp 
    WHERE
    birthday > DATE_SUB( CURDATE(), INTERVAL 7 DAY )

    五、year / month

    1.查询今年的数据

    select 
    *
    from t_emp
    
    WHERE
         YEAR(birthday) = year(CURDATE());

    2.查询某个月份的数据(只考虑月份)

    select 
    *
    from t_emp
    
    WHERE
         MONTH(birthday) = 11;

    六、quarter()

    1.查询本季度的数据

    select 
    *
    from t_emp
    WHERE
     QUARTER(birthday) = QUARTER(CURDATE())

    2.查询上季度的数据

    select 
    *
    from t_emp
    WHERE
      QUARTER(CURDATE()) - QUARTER(birthday) =1
  • 相关阅读:
    Java8 Optional使用方式
    ABAC框架-casbin
    Java数据脱敏(手机号|邮箱号|身份证号|银行卡号)
    使用OpenOffice将office文件转为pdf
    在线审批流设计
    Java 将带逗号的字符串转为List
    Java8 lambda常用操作
    Markdown合并单元格
    本博客已搬迁至rcst.xyz
    涂色(题解)
  • 原文地址:https://www.cnblogs.com/bytecodebuffer/p/13730981.html
Copyright © 2020-2023  润新知