首页 > 数据库 >MySQL(3)--SQL函数

MySQL(3)--SQL函数

时间:2024-08-09 22:55:21浏览次数:10  
标签:07 -- age SQL clazz MySQL DATE select

MySQL函数

数字函数

  • CEIL(x)/CEILING(x) 向上取整
select ceil(column_name) from table_name;
  • FLOOR(x) 向下取整
select floor(column_name) from table_name;
  • POW(x,y)/POWER(x,y) 返回 x 的 y 次方
select name,age,POW(age,2) from students;
  • RAND() 返回 0 到 1 的随机数
select name,age,rand() from students;
  • ROUND(x) 返回离 x 最近的整数
-- round(x,d) x保留d位小数
select 
	clazz
	,round(avg(age),2) as avg_age
from students
group by clazz
having avg(age)>22.5

-- round(x) 返回离x最近的小数
select 
	clazz
	,avg(age)
	,round(avg(age)) as avg_age
from students
group by clazz

字符串函数

  • LENGTH 字节数 CHAR_LENGTH(s)/CHARACTER_LENGTH(s)返回字符串 s 的字符数
select clazz,LENGTH(clazz),CHAR_LENGTH(clazz),CHARACTER_LENGTH(clazz) from students;

select LENGTH('wyl'),CHAR_LENGTH('wyl');
  • CONCAT(s1,s2…sn)字符串 s1,s2 等多个字符串合并为一个字符串
-- 注意: 如果有一个字符串为空  则结果为空
select *,CONCAT(name,',',email,',',password) from users;
  • CONCAT_WS(separator, str1, str2, …)指定分隔符的拼接
-- 可以指定分割符
-- 遇到为null的值 结果合并会忽略他
select *,CONCAT_ws('#',name,email,password) from users;
  • SUBSTR/SUBSTRING(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串
select *,SUBSTR(clazz,1,2) from students
  • STRCMP(s1,s2)比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1
-- 返回值是0  则字符串相等
select *,STRCMP(clazz,'文科六班\r') from students

日期函数

  • CURDATE()/CURRENT_DATE()返回当前日期
SELECT CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP
  • CURRENT_TIME()/CURTIME()返回当前时间
  • CURRENT_TIMESTAMP()返回当前日期和时间
  • DATEDIFF(d1,d2)计算日期 d1->d2 之间相隔的天数
SELECT DATEDIFF('2024-05-07','1908-12-04')
  • TIMEDIFF(time1, time2)计算时间差值
select TIMEDIFF('10:58:00','09:00:00')
  • UNIX_TIMESTAMP()得到时间戳
SELECT UNIX_TIMESTAMP()
  • FROM_UNIXTIME()时间戳转日期
select FROM_UNIXTIME(UNIX_TIMESTAMP()-10*24*60*60)
  • DATE_ADD(d,INTERVAL expr type)从日期增加指定的时间间隔。
SELECT DATE_ADD(hire_date,interval -10 day) from emp;
SELECT DATE_ADD(hire_date,interval 10 month) from emp;
  • DATE_SUB(date,INTERVAL expr type)函数从日期减去指定的时间间隔。
SELECT DATE_SUB(hire_date,interval 10 day) from emp
  • DATE_FORMAT(d,f)表达式 f的要求显示日期 d
select DATE_FORMAT(CURRENT_DATE,'%Y-%m-%d %H:%i:%S');

select DATE_FORMAT(CURRENT_DATE,'%m%d %Y');
  • STR_TO_DATE(string, format_mask)将字符串转变为日期
select STR_TO_DATE('2024王雨龙05朱超07张雪','%Y王雨龙%m朱超%d张雪');
-- 获取 日期的年份 月份 日  过了多少周(从0计数) 周几 过了多少周
select 
	YEAR('2024-05-07')
	,MONTH('2024-05-07')
	,day('2024-05-07')
	,week('2024-05-07')
	,WEEKDAY('2024-05-07')
	,WEEKOFYEAR('2024-05-07')
	
-- 你出生的那一天是当年的多少周 '2000-07-30'
-- 当年的那一周映射到今年是那一天到那一天

select 
	WEEKOFYEAR(DATE_ADD('2000-07-30',INTERVAL 24 year))
	,WEEKDAY(DATE_ADD('2000-07-30',INTERVAL 24 year))
	,DATE_ADD(DATE_ADD('2000-07-30',INTERVAL 24 year),INTERVAL -8 day)
	,DATE_ADD(DATE_ADD('2000-07-30',INTERVAL 24 year),INTERVAL -2 day)

高级函数

  • IF(expr,v1,v2)如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2
select 
	*
	,if(age=21,'1',if(age=22,'2',if(age=23,'3','4'))) 
from students;
  • IFNULL(v1,v2) 如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。
select name,IFNULL(email,'[email protected]') from users;
  • **CASE (WHEN THEN) + ELSE END **
-- CASE  (WHEN condition THEN val) + ELSE END
select 
	*
	,case 
		when age=21 then '1'
		when age=22 then '2' 
		when age=23 then '3' 
		when age=24 then '4'
		else '5' end
from students
  • CAST(x AS type)转换数据类型
-- 支持的转换类型 BINARY、CHAR、DATE、DATETIME、TIME、DECIMAL
select CAST(age AS DECIMAL) from students;

标签:07,--,age,SQL,clazz,MySQL,DATE,select
From: https://blog.csdn.net/m0_74896766/article/details/141072651

相关文章

  • 帝国cms 批量替换字段值使用说明
    批量替换字段值一、批量替换字段值功能介绍:批量替换字段值为对信息表字段的内容进行批量替换。二、批量替换字段值:(一)、登录后台,单击“栏目”菜单,选择“批量替换字段值”子菜单,进入批量替换字段值界面:(二)、进入批量替换字段值界面:选择替换表选择要替换哪个表的字段。操......
  • Java计算机毕业设计基本微信小程序的大学生自习室预约系统
    文末获取资源,收藏关注不迷路文章目录前言主要功能:主要使用技术研究内容核心代码文章目录前言随着互联网技术的发发展,计算机技术广泛应用在人们的生活中,逐渐成为日常工作、生活不可或缺的工具,高校各种管理系统层出不穷。高校作为学习知识和技术的高等学府,信息......
  • java毕业设计基于微信小程序的鲜花销售系统Vue+uniapp技术
    文末获取资源,收藏关注不迷路文章目录前言开发意义功能介绍主要使用技术研究内容核心代码文章目录前言在当今社会,随着移动互联网技术的飞速发展和智能手机的普及,人们的消费习惯正在发生深刻的变化。微信作为中国最大的社交媒体平台之一,不仅改变了人们的沟通方式,也深......
  • 2 + 2 != 4
    [题目通道](2+2!=4-洛谷)一道很绕的题。在手动计算一下之后,你会发现这个运算法则其实就是将运算符的ASCLL码也当做数字计算了进去。大约就是,你需要把这个算术表达式当做字符串读入,按照正常的流程,应该先把这个字符串中的数字和运算符分离开,然后通过对运算符的判断,一......
  • 织梦dedecms怎么上传本地视频
    如何使用Dedecms上传本地视频步骤1:准备视频文件确保视频文件格式符合Dedecms支持的格式(例如MP4、FLV、AVI)。确定视频文件的存储位置,最好保存在本地电脑上。步骤2:打开Dedecms管理后台输入管理员账号密码登录Dedecms管理后台。步骤3:创建新的视频分类在左侧导......
  • 单链表的增删查改
    头文件#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<assert.h>typedefstructMyStruct{   intdata;   structMyStruct*next;}SL;voidlistprint(SL**phead);//打印链表voidlistpushback(SL**phead,intx);/......
  • 【JavaEE初阶】线程安全的集合类
    ......
  • Oracle事务是怎么练成的
    什么是事务事务是数据库管理系统执行过程的一个逻辑单位,由一系列有限的数据库操作序列构成,事务必须满足‌ACID属性。ACID理论是数据库中最重要的概念之一,分别代表原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。原子性是指事务是一个不可分割的......
  • Windows如何使用Alt+快捷键打出特殊符号
    原文出处:Windows电脑上如何使用Alt键加数字输出特殊符号数学符号和其他非英文字符的Alt码AltCodeSymbolalt224αalt225ßalt226Γalt227πalt228Σalt229σalt230µalt231τalt232Φalt233Θalt234Ωalt235δalt236∞alt237φalt238εalt239∩alt......
  • 信息学奥赛一本通 1128 图像模糊处理
    1128:图像模糊处理时间限制:1000ms      内存限制:65536KB提交数:69990   通过数: 30350【题目描述】给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:1.四周最外侧的像素点灰度值不变;2.中间各像素点新灰度值为该像素点及其上下左......