• 【MySQL】函数


    MySQL DATE 函数

    MySQL Date 数据类型

    DATEYYYY-MM-DD
    DATETIMEYYYY-MM-DD HH:MM:SS
    TIMESTAMPYYYY-MM-DD HH:MM:SS
    YEARYYYY或YY

    DATE_ADD()

    • 向日期添加指定的时间间隔
    • DATE_ADD(date, INTERVAL expr type)

    例子:添加45天

    OrderIdProductNameOrderDate
    1Jarlsberg Cheese2008-11-11 13:23:44.657
    select 
    	DATE_ADD(OrderDate, INTERVAL 45 Day) AS OrderPayDate
    from
    	Orders
    
    • 1
    • 2
    • 3
    • 4

    DATE_SUB()

    • 从日期减去指定的时间间隔
    • DATE_SUB(date, INTERVAL expr type)

    例子:减去5天

    select
    	date_sub(orderdate, interval 5 day) as substractdate
    from
    	orders
    
    • 1
    • 2
    • 3
    • 4

    DATEDIFF()

    • 返回两个日期之间的天数
    • DATEDIFF(date1, date2),只有日期部分参与计算
    select	
    	datediff("2008-11-30", "2008-11-29") as diffdate
    
    • 1
    • 2

    TIMESTAMPDIFF()

    • timestampdiff(type, start_time, end_time)

    type可以为second,minute,hour,day等

    DATE_FORMAT()

    • 函数用于以不同的格式显示日期/时间数据
    • DATE_FORMAT(date, format)
    select
    	date_format(now(), '%Y-%m'),   # 2021-10
    	date_format(now(), '%b %d %Y %h:%i %p'),
    	date_format(now(), '%m-%d-%Y'),
    	date_format(now(), '%d %b %y'),
    	date_format(NOW(), '%d %b %Y %T:%f')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    NOW()

    • 返回当前的日期和时间
    • NOW()
    select now(), curdate(), curtime()
    
    • 1

    例子:创建带有日期时间列的表,并插入一条记录

    CREATE TABLE Orders
    (
    	OrderId int NOT NULL,
        ProductName varchar(50) NOT NULL,
        OrderDate datetime NOT NULL DEFAULT NOW(),
        PRIMARY KEY (OrderId)
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    INSERT INTO 
    Orders
    	(ProductName)
    Values
    	('Jarlsberg Cheese')
    
    • 1
    • 2
    • 3
    • 4
    • 5

    CURDATE()

    • 返回当前的日期
    • CURDATE()

    CURTIME()

    • 返回当前的时间
    • CURTIME()

    DATE()

    • 提取日期部分
    • DATE(date)

    例子:提取日期/时间表达式的日期部分

    select
    	productname,
    	date(orderdate) as orderdate
    from
    	orders
    where
    	orderid=1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    EXTRACT()

    • 返回日期/时间的单独部分
    • EXTRACT(unit FROM date)
    select
    	extract(year from orderdate) as orderyear,
    	extract(month from orderdate) as ordermonth,
    	extract(day from orderdate) as orderday
    from
    	orders
    where orderid=1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    MySQL 字符串函数

    CONCAT()

    在连接字符串的时候,只要其中一个是NULL,那么将返回NULL。

    select concat('11', '22', '33');
    
    • 1
    select concat('11', '22', null);
    
    • 1

    表后追加

    update
    	table_name
    set
    	field=concat(field,'str')
    
    • 1
    • 2
    • 3
    • 4

    表后追加

    update
    	table_name
    set
    	field=concat('str',field)
    
    • 1
    • 2
    • 3
    • 4

    CONCAT_WS()

    第一个参数是其他参数的分隔符

    不会因为有NULL返回NULL

    select concat_ws(',','a','b','c')
    
    • 1

    GROUP_CONCAT()

    默认逗号分隔

    select
    	id, group_concat(name)
    from
    	mytable
    group by 
    	id;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    可以指定分隔符,也可以去冗余

    select
    	id, group_concat(distinct name, ';')
    from
    	mytable
    group by
    	id;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    也可以倒序

    select
    	id, group_concat(name order by name desc)
    from
    	mytable
    group by
    	id;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    REPEAT()

    • 复制字符串
    • repeat(str, num)
    select repeat('ab',2);
    
    • 1

    LEFT(), RIGHT()

    • 从左开始截取 left(str,length)
    select
    	left(content,200) as abstract
    from
    	my_content_t	
    
    • 1
    • 2
    • 3
    • 4
    • 从右开始截取 right(str,length)
    select
    	right(content,200) as abstract
    from
    	my_content_t
    
    • 1
    • 2
    • 3
    • 4

    SUBSTRING()

    • substring(str,pos) 直到最后
    • substring(str,pos,length)

    pos可为负数,表示倒数

    • substring(str FROM pos)
    • substring(str FROM pos FOR len)

    SUBSTRING_INDEX()

    • substring_index(str,delim,count) count可负
    select
    	substring_index("www.w3cschool.cn",'.',2) as abstract
    from 
    	wiki_user
    
    • 1
    • 2
    • 3
    • 4

    SUBSTR()

    • substr(string string, num start, num length)
    # 截取trans_no字段中的前两位字符
    select 
    	substr(trans_no,1,2) "前两位"
    from
    	withdraw_amount_flow
    
    • 1
    • 2
    • 3
    • 4
    • 5

    MySQL 数学函数

    所有数学函数在发生错误时,均返回NULL

    ABS()

    • ABS(X) 返回X的绝对值

    SIGN()

    • SIGN(X)符号函数
    • 取值为-1 0 1

    MOD()

    • MOD(N,M)
    • 同 %

    FLOOR()

    • FLOOR(X) 返回不大于X的最大整数值

    CEILING()

    • CEILING(X) 返回不小于X的最小整数

    ROUND()

    • ROUND(X) 四舍五入到最近的整数
    • ROUND(X,D) D表示几位小数

    DIV

    整除

    SELECT 5 DIV 2;
    
    • 1

    EXP()

    • EXP(X) 自然对数底的X次方

    LN()

    • LN(X) 返回X的自然对数

    LOG()

    • LOG(X)
    • LOG(B,X)
    • LOG2(X)
    • LOG10(X)

    POW()

    • POWER(X,Y)

    SQRT()

    • SQRT(X)

    PI()

    COS(), SIN(), TAN()

    select cos(pi());
    select sin(pi());
    select tan(pi()+1);
    
    • 1
    • 2
    • 3

    ACOS(), ASIN(), ATAN()

    ATAN(Y,X)

    ATAN2(Y,X)

    COT(X)

    RAND()

    • RAND()
    • RAND(N)

    LEAST(X, Y, …)

    • 有两个或更多个参数,返回最小的参数。

    GREATEST(X, Y, …)

    • 返回最大参数

    DEGREES()

    SELECT DEGREES(PI());
    
    • 1

    RADIANS()

    SELECT RADIANS(90);
    
    • 1

    TRUNCATE()

    • TRUNCATE(X, D) 将数值X截到D个小数
    SELECT TRUNCATE(122, -2); 100
    
    • 1
  • 相关阅读:
    Ubuntu18.04 ROS与Anaconda兼容并且在python3的虚拟环境下与ROS通信
    前端面试如何回答,这些题目或许可以给你一些提示
    【计算机网络】期末复习(全是大题)
    6.DesignForPlacement\2.PdfSchematicInteractive
    springboot:时间格式化的5种方法(解决后端传给前端的时间格式转换问题)推荐使用第4和第5种!
    Redis 底层对 String 的 3 个优化
    杭州亚运会,一个中国TO B厂商的“新样板间”
    感染了后缀为.faust勒索病毒如何应对?数据能够恢复吗?
    HTML入门零基础教程(三)
    Mybatis04(关联关系映射)
  • 原文地址:https://blog.csdn.net/m0_46459047/article/details/126735084