mysql常见函数使用

2023-11-11

-- 时间操作
-- 时间单位 unit
-- MICROSECOND  SECOND  MINUTE  HOUR  DAY WEEK MONTH  QUARTER  YEAR
-- SECOND_MICROSECOND  MINUTE_MICROSECOND MINUTE_SECOND   HOUR_MICROSECOND
-- HOUR_SECOND  HOUR_MINUTE  DAY_MICROSECOND  DAY_SECOND
-- DAY_MINUTE  DAY_HOUR YEAR_MONTH

-- 返回两个日期之间的天数。
SELECT DATEDIFF('2008-12-30','2009-12-29') 
-- 返回2个时间的 单位差 
SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');  -- 返回 3

SELECT DATE(NOW())

-- 返回日期/时间的单独部分,比如年、月、日、小时、分钟等等
SELECT EXTRACT(YEAR FROM NOW())  -- 返回 2020
SELECT YEAR(NOW()) 
SELECT EXTRACT(DAY_HOUR FROM NOW())  -- 当前时间 如:15
SELECT HOUR(NOW())

SELECT EXTRACT(YEAR_MONTH FROM NOW())  -- 返回202012
SELECT MONTH(NOW())  -- 返回12
SELECT YEARWEEK(NOW())  -- 202048  年份星期
SELECT WEEK(NOW())  -- 返回48

SELECT DAY(NOW()) --  3  day of month
SELECT DAYOFYEAR(NOW())
SELECT DAYOFMONTH(NOW()) 


-- 函数 DATE_ADD(date,INTERVAL expr type)
SELECT DATE_ADD(NOW(),INTERVAL 2 DAY)  -- 返回 后天这个时候
SELECT DATE_SUB(NOW(),INTERVAL 2 DAY) -- 返回大前天
SELECT DATE_SUB(NOW(),INTERVAL -2 DAY) -- 返回后天这个时候

-- 时间格式化  DATE_FORMAT  https://www.w3school.com.cn/sql/func_date_format.asp
-- 请注意 英文的大小写 YmdHis   这个格式是最常见的
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')  -- 返回2020-12-03 15:43:02

-- 日期转时间戳  注意是十位的时间戳 
SELECT UNIX_TIMESTAMP(NOW());  //1606981613
-- 时间戳转日期  注意返回的时间格式
SELECT FROM_UNIXTIME(1606981613); 


-- 实战
-- 返回 今年第一天
SELECT DATE_SUB(CURDATE(),INTERVAL DAYOFYEAR(NOW())-1 DAY);  
SELECT DATE_SUB(NOW(),INTERVAL DAYOFYEAR(NOW())-1 DAY);   -- 带时间

-- 返回 今年最后一天
SELECT CONCAT(YEAR(NOW()),'-12-31');



-- 返回 当前月 第 一天  2个 格式不一样 
SELECT CONCAT(EXTRACT(YEAR_MONTH FROM NOW()),'01');

SELECT CONCAT(DATE_FORMAT(LAST_DAY(NOW()),'%Y-%m-'),'01');


--  返回 当前月最后一天
SELECT LAST_DAY(NOW())
SELECT LAST_DAY('2003-02-05');

#前一month的第一天:  
SELECT CONCAT(DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH),'%Y-%m-'),'01');

#前一month的最后一天:  
SELECT LAST_DAY(NOW() - INTERVAL 1 MONTH);


# 月环比 上个月同期 
SELECT DATE_ADD(NOW(),INTERVAL -1 MONTH)
SELECT DATE_ADD('2020-02-28',INTERVAL -1 MONTH)   -- 2月28日 环比 是1月28日 还是 1月31日 

# 同比 去年同期 
SELECT DATE_ADD(NOW(),INTERVAL -1 YEAR)



-- --------------------------------------  字符串相关操作
-- 字符串连接函数    注意有一个为空全为空 ,在开发的时候要注意
SELECT CONCAT('中','国','人')
SELECT CONCAT('1',NULL,'2') 


-- 用字符进行连接  注意 为 null 情况,不连接该字符串,而不是返回null
SELECT CONCAT_WS('-', '2020','10','20')
SELECT CONCAT_WS('-', '2020',NULL ,'20')


-- FIELD(s,s1,s2...) 返回第一个字符串 s 在字符串列表(s1,s2...)中的位置
SELECT FIELD('abc','a','b','abc','abcd')  --返回  3
-- FIND_IN_SET(s1,s2)  返回在字符串s2中与s1匹配的字符串的位置
SELECT FIND_IN_SET("c", "a,b,c,d,e");


-- LOCATE(s1,s)  从字符串 s 中获取 s1 的开始位置
SELECT LOCATE('my','myteststring');   -- 1  注意是从1 开始
SELECT LOCATE('abc','myteststring');   --  不存在 返回  0   不是-1 

-- 右补足
SELECT RPAD('abc',8,'xzzaaa');
-- 左补足
SELECT LPAD('abc',8,'xzzaXY');
SELECT LPAD('abc',8,'?');

-- 字符转小写
SELECT LCASE('aDFD位置D') 
SELECT LOWER('aDFD位置D')
-- 字符大写
SELECT UCASE('aDFD位置D') 
SELECT UPPER('aDFD位置D')


--  去掉左侧空格
SELECT LTRIM('  abd c ')
-- 去掉右侧空格
SELECT RTRIM('  abd c ')
-- 去掉2侧字符
SELECT TRIM('  abd c ')

-- 字符翻转
SELECT REVERSE('abcde ')

-- 返回 截取前几个字符
SELECT LEFT('abcdedf',2)
-- 返回 截取后几个字符
SELECT RIGHT('中国人开始字符',2)

-- SUBSTR(S) 截取 从 2  开始的3个字符   SUBSTR 和 SUBSTRING 用法一样
SELECT SUBSTR("abcdedfh", 2, 3)  -- bcd    从第一位开始是1 
SELECT SUBSTR("abcdedfh", -3, 3)  -- dfh  注意负号
SELECT SUBSTRING("abcdedfh", 2, 3)  -- bcd

-- 替换
SELECT REPLACE('abc','a','x') --xbc


--  -------------------------------- 条件判断
-- COALESCE(expr1, expr2, ...., expr_n)  expr_n)	返回参数中的第一个非空表达式(从左向右)
SELECT COALESCE(NULL, NULL, NULL, 'runoob.com', NULL, 'google.com');

-- IF(expr,v1,v2) 如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。
SELECT IF(1 > 0,'正确','错误')

SELECT 

-- IFNULL(v1,v2) 如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。
SELECT IFNULL(NULL,1)

-- 判断是否为空
SELECT ISNULL(NULL)   -- 返回1 

-- case when
SELECT CASE WHEN 1>0 THEN  '正确' ELSE '错误' END 

-- ------------------------------- 数字相关
--  取绝对值
 SELECT  ABS('-123.0')  -- 返回 123  注意小数点不见了
 
-- CEIL 向上取整
SELECT CEIL(1.5)  
-- 向下取整
SELECT FLOOR(1.7)
-- 四舍五入, 保留几位小数
SELECT ROUND(1.5)   
SELECT ROUND(1.5,0)  -- 等同上
SELECT ROUND(1.5,2)   -- 1.50
-- 不会四舍五入 
SELECT TRUNCATE(1.23456,3)

-- 数字格式化 ##,###.### 的格式化  带千分位符号 ,用来展示
SELECT FORMAT(12332.123456, 4);  -- 12,332.1235  
SELECT FORMAT(12332.1, 4);  -- 12,332.1000  补0


-- 返回最大值 ,注意不能为空  否则为空
SELECT GREATEST(3, 12, 34.2, 8, -1.0);
-- 返回最小值
SELECT LEAST(3, 12, 34.2, 8, -1.0);

-- 求模 整除  3/5
SELECT 6 DIV 5   -- 返回1
SELECT FLOOR(6/5) 

-- 取余
SELECT MOD(5.233,2)
SELECT 5.233%2

-- 0 - 1的随机数 
SELECT RAND()
SELECT RAND(1) -- 重复的随机数
SELECT RAND(1) FROM t_user  -- 每条记录 都是不一样的  t_user  是随便一张测试表

-- 判断是正数 负数 0
SELECT SIGN(1)
SELECT SIGN(0)
SELECT SIGN(-1)

-- rand() 使用场景  -- 这个查询效率低 特别数据数据量大的表 ,要小心,数据量少的没关系  一般随机取数的 可以在应用程序上除了
SELECT * FROM t_user  ORDER BY RAND() LIMIT 10  
SELECT * FROM (SELECT * FROM t_user LIMIT 10 ) a ORDER BY RAND()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql常见函数使用 的相关文章

  • sql server判断两个字符串是否相等(区分大小写)

    步骤 一 新增测试数据 新建测试表 create table testTable1 str1 varchar 100 str2 varchar 100 新增测试数据 如下图 二 两字符串进行比较 当直接使用 号进行判断时 是无法区分大小写的
  • SQLServer 中实现类似MySQL中的group_concat()函数的功能

    SQLServer中没有MySQL中的group concat函数 可以把分组的数据连接在一起 后在网上查找 找到了可以实现此功能的方法 特此记录下 SELECT a stuff SELECT b FROM tb WHERE a t a F
  • 在SQL Server中从所有表或所有数据库中搜索关键字

    从所有表及所有库中搜索关键字 在所有表中搜索关键字 declare str varchar 100 set str a 要搜索的字符串 declare s varchar 8000 declare tb cursor local for s
  • 安装SQL Server2012报Microsoft.NET Framework4无法安装错误解决方案

    今天在安装SQL Server2012版本时 在最后出现 没有安装Microsoft NET Framework4 请安装这个继续安装SQLServer2012 于是就重官网下载Microsoft NET Framework4进行安装出现如
  • MySQL数据库:SQL语句

    MySql数据库系列阅读 MySQL数据库 MySQL数据库 SQL语句 MySQL数据库 完整性约束 MySQL数据库备份与还原 MySQL数据库 编码 1 SQL概述 1 1 什么是SQL SQL Structured Query La
  • [SQL Server] TSQL实现SQL Server中CTE 递归查询

    参考博客 https www cnblogs com ljhdo p 4580347 html 简介 递归查询主要应用于层级结构表的查询 叶节点 gt 根节点的查询 根节点 gt 叶节点的查询 递归查询必须满足的条件 初始条件 递归查询至少
  • 数据库文档管理化开源项目工具SmartSQL

    数据库文档管理化开源项目工具SmartSQL 为何写该博文 由于这段时间需要理清软件的相关表结构 以及在客户端操作时使用 SQL Server Profiler 来检索一些简单的CURD sql语句 为了更好高效的理清内部的一些表结构 视图
  • Sql server 千万级大数据SQL查询优化的几点建议

    1 对查询进行优化 应尽量避免全表扫描 首先应考虑在 where 及 order by 涉及的列上建立索引 2 应尽量避免在 where 子句中对字段进行 null 值判断 否则将导致引擎放弃使用索引而进行全表扫描 如 select id
  • SQL Server基础Sql语句复习

    基础至极 1 创建表 create table Course Cno char 4 primary key not null 创建主键 非空 Cname char 40 not null Cpno char 4 Ccredit smalli
  • SQL Server安装教程(2022年更新)

    很多朋友在安装SQL Server的过程中会碰到一些小状况 今天就以Microsoft SQL Server2019为例来聊聊SQL Server安装的相关问题 提示 若之前安装过SQL Server 务必保证在重装前将其卸载干净 目录 1
  • 数据库的连接串(中文)

    在数据库的各种应用程序开发中 连接数据库是数据库应用程序开发的第一步 同时也是最重要的一步 而对于不同的数据库他们的连接模式各有不同 对应的连接串也不同 Sql Server ODBC o 标准连接 Standard Security Dr
  • SQLServer2019安装教程

    可以去官网下载 我百度网盘也有都一样 https pan baidu com s 1i3umqHXSUMbxJ9rRi6mU4A 提取码 5g9q 打开应用程序 点击安装 点第一个全新得SQL server独立安装 下一步 在这一步可能有需
  • SQL复习要点

    1 数据库系统阶段的数据管理特点 1 数据结构化2 数据共享性高 冗余度小 易扩充 3 数据独立性高4 统一的数据管理和控制功能 2 数据库 database DB 是存放数据的仓库 3 数据库管理系统 data base manageme
  • 工作——自动化测试中用到的SQL server查询语句的格式调整

    SELECT CONVERT VARCHAR 100 GETDATE 0 05 16 2006 10 57AM SELECT CONVERT VARCHAR 100 GETDATE 1 05 16 06 SELECT CONVERT VAR
  • SQL Server 批量插入数据的两种方法

    在SQL Server 中插入一条数据使用Insert语句 但是如果想要批量插入一堆数据的话 循环使用Insert不仅效率低 而且会导致SQL一系统性能问题 下面介绍SQL Server支持的两种批量数据插入方法 Bulk和表值参数 Tab
  • SQL Server: Get table primary key and Foreign Key using sql query

    所有用户表 主键 外键 描述等信息 涂聚文 20150924 Geovin Du SELECT tbl name AS TableName clmns name AS ColumnName usrt name AS DataType ISN
  • sql 2008 R2 修改数据库表编辑行200小技巧

    在使用sql server 2008 R2时 有时候要打开一个表 看里面的数据 发现只能编辑前面200行 如下图 如果我的数据库表的数据 超过200 怎么办呢 其实只要修改下配置 就可以了 如下图 点击选项 进入选项界面 如下图 在sql
  • SQL Server2012 安装方法详解

    欢迎大家关注我的公众号 添加我为好友 首先要找到自己下载好的安装包 并且保持网络畅通 最近有不少细心的小伙伴反应安装包有问题 我这里进行了一下更新 链接 https pan baidu com s 1bB WS zmHy ow34mU ET
  • 使用JTDS连接sqlserver数据库

    Java连接SQL Server 2000数据库时 有两种方法 1 通过Microsoft的JDBC驱动连接 此JDBC驱动共有三个文件 分别是mssqlserver jar msutil jar和msbase jar 但是Microsof
  • 为 SQL Server 站点数据库服务器配置 SPN

    如何为 SQL Server 站点数据库服务器配置 SPN 主题上次更新时间 2008 年 1 月 使用 SQL Server 计算机的本地系统帐户运行 SQL Server 服务不是 SQL Server 最佳方案 为了最安全地运行 SQ

随机推荐

  • ios内购报错status:21004

    1 本人java 不懂这段代码什么意思 和对接的ios同事解决问题时 说是加入了共享密码 然后传给我的data参数 到ios验证才通过的 返回了status 0
  • vue项目build打包时遇到 Cannot read property ‘compilation‘ of undefined 问题解决方法

    vue项目build打包时遇到 Cannot read property compilation of undefined 问题解决方法 参考文章 1 vue项目build打包时遇到 Cannot read property compila
  • android___android_log_print打印函数__源代码

    android端JNI的打印信息 include
  • PINN解偏微分方程-tensorflow 2.0

    PINN解偏微分方程 tensorflow 2 0 1 用PINN求解简单的PDE 1 2 用PINN求解复杂的PDE 2 本文基于CSDN博主 刘文凯 的两篇文章 将其中的pytorch代码改写为了tensorflow2 0代码 供参考
  • 学习Unity射线的创建使用

    射线的意义 射线从原始的 触摸 碰撞检测到物体 开始转向 视野 碰撞 以此检测到某个物体 在这个视野 射线 范围内的物体 我都可以拿到他的碰撞器Collider 以此拿到 看到 的物体 拿到物体碰撞器用结构 RaycastHit 类型的变量
  • vs2022配置pcl1.13.1

    1 下载 打开GitHub网站 搜索pcl 选择第一个结果打开 按照下图步骤操作 下载PCL预编译安装程序PCL 1 13 1 AllInOne msvc2022 win64 exe 和要安装的PCL组件 例如pcl 1 13 1 pdb
  • vue elementui menu导航菜单根据路由变化选中对应项

    bug出现的两种情况 1 刷新页面 导航菜单选中项恢复成默认设置 2 点击页面里的链接跳转到其它页面 但是导航菜单不会自动选中当前项 解决方法 1 设置router为true default active为 router path 如下图标
  • python语法--标识符(2)

    1 标识符 1 1定义 标识符即用户编程时自定义的名字 可以用来给变量 常量 函数等命名 以建立起名称与使用之间的关系 1 2命名规则 a 必须为字母数字下划线 且数字不能打头 b 严格区分大小写 c 不能使用关键字 但可以包含关键字 1
  • Tensorflow2.0 GPU版本安装(CUDA10.0 + cuDNN7.5 + Tensorflow2.0 Alpha)

    本人小白一名 总结了一些自己的操作经验 仅供参考 前段时间Tensorflow 2 0 Alpha版本发布 作为刚入门深度学习的小白之前没有学过 Tensorflow1 x 系列 只学过一些keras 也懒得再学习 Tensorflow1
  • SQLserver存储过程加密、解密

    SQLserver存储过程加密 解密 作者 邱名涛 撰写时间 2019 年 6 月 22 日 关键技术 数据库存储过程加密 解密 加密存储过程 判断表是否存在 如果存在就删除 if object id N dbo Test N U is n
  • SMALE 实验室投稿期刊选择

    摘要 本文档仅供 SMALE 实验室同学参考 这里的分区均按中科院标准 分区仅由当前的影响因子确定 而 CCF 分类则说明了长期的声誉 有些期刊是 CCF B 类 但落到三 四区 其实是不合理的 申请自然科学基金之类 小同行主要还是依据 C
  • java 等额本息计算方式

    投资理财 等额本息计算方式 以下按照10000元 以年利率15 5 投资期限为6个月 以等额本息方式偿还来计算 等额本息计算 public class PrincipalAndInterestEquals public static voi
  • echarts 地图类型热力图

    地图主要用于地理区域数据的可视化 配合 visualMap 组件用于展示不同区域的人口分布密度等数据 visualMap 是视觉映射组件 用于进行 视觉编码 也就是将数据映射到视觉元素 视觉通道 echarts 官网案例 https ech
  • Java项目样式规范checkstyle.xml

    具体项的具体说明请参考 https www cnblogs com ziyuyuyu p 9870717 html 梳理此次完整checkstyle xml说明 以备以后再此基础上删减
  • 网页抓取工具

    Teleport Ultra Teleport Ultra所能做的 不仅仅是 离线浏览某个网页 让你离线快速浏览某个网页的内容当然是它的一项重要功能 它可以从Internet的任何地方抓回你想要的任何文件 它可以在你指定的时间自动登录到你指
  • 开源麒麟Linux系统openKylin-1.0 内核是debian 安装openssh-server及配置root远程登陆

    原因 服务器安装完开源麒麟Linux系统openKylin 1 0后 换使用时的键鼠很烦 目标 Debian安装openssh server 原系统安装Xshell 并配置实现root远程登录 记录下并供大家参考 检查 apt search
  • 【传感器课程设计——DHT11温湿度数据上传阿里云】课程设计论文大纲

    1 摘要 摘要可以分为中文和英文两部分 2 概述 2 1 课程设计背景 2 2 国内外研究现状 2 3 报告组织形式 3 系统设计 3 1 设计目标 3 2 设计方案 3 3 设计方案分析 3 4 程序结构 4 硬件设计 4 1 ESP82
  • Authing 入选《2022年度中国高科技高成长企业》榜单

    近日 Authing 入选 2022 年度中国高科技高成长企业系列榜单 云原生高成长企业榜 该榜单由 第一新声 联合 天眼查 发起的 数字中国 系列之 2022 年度中国高科技高成长企业系列榜单发布 该榜单旨在发现和挖掘被资本市场关注 同时
  • 同方服务器系统安装,同方云服务器安装使用手册

    同方云服务器安装使用手册 内容精选 换一换 如果您已经创建了一台Linux云服务器 并根据业务需要进行了自定义配置 如安装软件 部署应用环境等 您可以为更新后的云服务器创建系统盘镜像 使用该镜像创建新的云服务器 会包含您已配置的自定义项 省
  • mysql常见函数使用

    时间操作 时间单位 unit MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND MICROSECOND MINUTE MICROSECOND MINUTE S