zoukankan      html  css  js  c++  java
  • mysql详解6:字符串函数 日期函数 IF CASE

    select ROUND(5.73,2) 四舍五入 select ROUND(5.45,1) 5.5
    select TRUNCATE(5.7345,2) 保留两位小数 select TRUNCATE(5.45,1) 5.4
    select CEILING(5.2) 取大于等于的最近整数 6
    select FLOOR(5.2) 取小于等于的最近整数 5
    select ABS(-5.2) 取绝对值
    select RAND() 0和1之间的随机值

    select ROUND(rand()*(max-min)+min) 取指定范围的随机数
    select FLOOR(rand()*(max-min)+min) 取指定范围的随机整数

    字符串函数
    UPPER() LOWER()
    SELECT LTRIM(" SKY") 去除前面多余空格
    SELECT TRIM(" SKY") 去除多余空格
    select LEFT("SKYTTT",3) 截取前面几个 SKY
    select RIGHT("SKYTTT",3) 截取后面几个 TTT
    select substring("SKYTTT",3) 从第三个开始截取剩下的全部 YTTT
    select substring("SKYTTT",3,2) 从第3个截取2个
    select LOCATE("N","kindefgaten") 3 从字符串中搜索指定字母的位置 第一个n的位置为3 如果没有返回0
    select REPLACE("kindergaten","gaten","gaden") 替换字符串中的部分
    select CONCAT("FIRST","last") 连接字符串

    日期函数
    SELECT NOW(), CURDATE(), CURTIME()
    2021-06-18 13:26:28 2021-06-18 13:26:28
    当前时间 当前日期 当前时分秒
    SELECT Year(Now()) 当前年份
    SELECT MONTHnAME(Now()) 当前月份名字
    SELECT EXTRACT(DAY FROM Now()) 18
    例:
    SELECT *
    FROM orders
    where YEAR(order_date) >=YEAR(NOW())

    格式化日期和时间
    select DATE_FORMAT(NOW(),'%M %d %Y')
    June 18 2021
    select DATE_FORMAT(NOW(),'%H: %i %p')
    14: 08 PM
    计算日期和时间
    SELECT DATE_ADD(NOW(),INTERVAL 1 YEAR) 增加1年
    SELECT DATEDIFF('2019-01-05 09:00','2019-01-01 17:00') 前面的减去后面的
    SELECT TIME_TO_SEC('09:02')-TIME_TO_SEC('09:00') 120 按照0点开始的秒数计算


    IFNULL
    select
    order_id,
    IFNULL(shipper_id,'Not assighed') as shipper
    from orders 如果是空就会返回预设的值

    COALESCE
    select
    order_id,
    COALESCE(shipper_id,comments,'Not assighed') as shipper
    from orders 如果为空,返回预设值,如果预设值为空,返回未分配

    IF函数
    select
    order_id,
    order_date,
    IF(YEAR(order_date)=YEAR(NOW()),'actice','archived')
    from orders
    如果满足条件 返回active 否则archived


    case函数
    select
    order_id,
    case
    when YEAR(order_date) =Year(NOW()) THEN 'ACTIVE'
    when YEAR(order_date) =YEAR(NOW()) -1 THEN "LAST YEAR"
    when YEAR(order_date) <YEAR(NOW()) -1 THEN 'Archived'
    ELSE 'future'
    end as category
    from orders

    SELECT CONCAT(first_name,'',last_name) as customer,
    points,
    case
    when points>3000 then 'gold'
    when points>=2000 then 'silver'
    else 'Bronze'
    end as category
    from customers

  • 相关阅读:
    GZDBHelper C#.NET开源的数据库访问组件
    判断页面是否是静态页面
    Web应用程序dll获取当前程序集路径问题
    webAPI 上传文件
    解决.Net Core3.0 修改cshtml代码之后必须重新生成才可以看到效果
    .net core使用LESS
    test
    JS实现线程锁(Promise),NodeJS并发锁处理
    参考护照编码实现算法JS生成带字母有序编码
    centos7防火墙开放端口与关闭防火墙
  • 原文地址:https://www.cnblogs.com/yxj808/p/15080678.html
Copyright © 2011-2022 走看看