MySQL-数据处理函数(-1)

033-数据处理函数之获取日期时间

  • now():获取的是执行select语句的时刻。
  • sysdate():获取的是执行sysdate()函数的时刻。
select now(), sleep(2), sysdate();

在这里插入图片描述
获取当前日期

select curdate();
select current_date();
select current_date;

在这里插入图片描述
获取当前时间

select curtime();
select current_time();
select current_time;

在这里插入图片描述
获取单独的年、月、日、时、分、秒

select year(now());
select month(now());

在这里插入图片描述

034-获取间隔日期时间

date_add函数的语法格式:date_add(日期, interval expr 单位)

select date_add('2024-6-11', interval 7 month);
select date_add('2024-6-11 16:21:59', interval 9 minute);

在这里插入图片描述
在这里插入图片描述
如果为负数,效果和date_sub函数相同

select date_add('2024-6-11 16:21:59', interval -9 minute);
select date_sub('2024-6-11 16:21:59', interval 9 minute);

在这里插入图片描述
单位:

  • year:年

  • month:月

  • day:日

  • hour:时

  • minute:分

  • second:秒

  • microsecond:微秒(1秒等于1000毫秒,1毫秒等于1000微秒)

  • week:周

  • quarter:季度
    image.png
    另外,单位也可以采用复合型单位,例如:

  • SECOND_MICROSECOND

  • MINUTE_MICROSECOND

  • MINUTE_SECOND:几分几秒之后

  • HOUR_MICROSECOND

  • HOUR_SECOND

  • HOUR_MINUTE:几小时几分之后

  • DAY_MICROSECOND

  • DAY_SECOND

  • DAY_MINUTE

  • DAY_HOUR:几天几小时之后

  • YEAR_MONTH:几年几个月之后

select date_add('2024-6-11', interval '3, 2' year_month);

在这里插入图片描述

035-日期格式化

date_format日期格式化函数

  • %Y:四位年份
  • %y:两位年份
  • %m:月份(1…12)
  • %d:日(1…30)
  • %H:小时(0…23)
  • %i:分(0…59)
  • %s:秒(0…59)
select date_format(now(), '%H:%i:%s %Y-%m-%d');

在这里插入图片描述

select ename, sal, date_format(hiredate, '%y-%m/%d') hiredate from emp;

在这里插入图片描述

036-字符串转日期

str_to_date函数

insert into t_student(name, birth) values('cupid0', '1999-10-18');
insert into t_student(name, birth) values('cupid1', str_to_date('1999-10-18', '%Y-%m-%d'));

在这里插入图片描述
如果日期格式符合以下的几种格式,mysql都会自动进行类型转换的。
image.png
dayofweek、dayofmonth、dayofyear函数
周日是第一天

select dayofweek(now());
select dayofmonth(now());
select dayofyear(now());

在这里插入图片描述
last_day函数
获取给定日期所在月的最后一天的日期

select last_day(now());

在这里插入图片描述
datediff函数 timediff函数

select datediff('2024-06-19 20:10:30', '2024-6-11 17:22:22');
select timediff('2024-06-11 20:10:30', '2024-6-11 17:22:22');

在这里插入图片描述

039-if函数

SELECT IF(500<1000, "YES", "NO");

如果工资高于3000,则输出1,反之则输出0

select ename, sal, if(sal>=3000,1, 0) from emp;

在这里插入图片描述
如果名字是SMITH的,工资上调10%,其他员工工资正常显示

select ename, sal, if(ename='SMITH', sal*1.1, sal) from emp;

在这里插入图片描述
工作岗位是MANAGER的工资上调10%,是SALESMAN的工资上调20%,其他岗位工资正常

select job, sal, if(job='SALESMAN', sal*1.2, if(job='MANAGER', sal*1.1, sal)) newsal from emp;

在这里插入图片描述
上面这个需求也可以使用:case… when… then… when… then… else… end来完成

select ename,job,sal,(case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.1 else sal end) newsal from emp;

在这里插入图片描述

040-类型转换与加密

cast函数
cast函数用于将值从一种数据类型转换为表达式中指定的另一种数据类型
语法:cast(值 as 数据类型)
例如:cast(‘2020-10-11’ as date),表示将字符串’2020-10-11’转换成日期date类型。
在使用cast函数时,可用的数据类型包括:

  • date:日期类型
  • time:时间类型
  • datetime:日期时间类型
  • signed:有符号的int类型(有符号指的是正数负数)
  • char:定长字符串类型
  • decimal:浮点型
select cast('2024-6-11 18:09:22'as date);
select cast('2024-6-11 18:09:22'as time);
select cast('2024-6-11 18:09:22'as datetime);

在这里插入图片描述

select cast('-5.3' as signed);
select cast(123.456 as char(4));

在这里插入图片描述
decimal(有效数字个数,保留几位小数)

select cast(123.456 as decimal(4, 1));
select cast(123.456 as decimal(5, 1));
select cast(123.456 as decimal(3, 1));
select cast(123.456 as decimal(2, 1));

在这里插入图片描述
加密函数
md5函数,可以将给定的字符串经过md5算法进行加密处理,字符串经过加密之后会生成一个固定长度32位的字符串(16进制),md5加密之后的密文通常是不能解密的

select md5('cupid');

在这里插入图片描述

  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值