mysql学习笔记-数据处理函数

大概有哪些类型函数

  • 用于处理文本字符串(如删除或填充值,转换值为大写或小写)的文本函数。
  • 用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。
  • 用于处理日期和时间值并从这些值中提取特定成分(如返回两个日期之差,检查日期有效性)的日期和时间函数。
  • 返回特殊信息(如返回用户登录信息)的系统函数。

文本处理函数

语句:SELECT vend_name, UPPER(vend_name) AS vend_name_upcase FROM Vendors ORDER BY vend_name;

输出结果:
vend_name vend_name_upcase


Bear Emporium BEAR EMPORIUM
Bears R Us BEARS R US
Doll House Inc. DOLL HOUSE INC.
Fun and Games FUN AND GAMES
Furball Inc. FURBALL INC.
Jouets et ours JOUETS ET OURS

可以看到,UPPER()将括号中的文本参数全部转换为大写。

常见的文本处理函数有:

函  数说  明
LEFT()(或使用子字符串函数)返回字符串左边的字符
LENGTH()(也使用DATALENGTH()或LEN())返回字符串的长度
LOWER()(Access使用LCASE())将字符串转换为小写
LTRIM()去掉字符串左边的空格
RIGHT()(或使用子字符串函数)返回字符串右边的字符
RTRIM()去掉字符串右边的空格
SOUNDEX()返回字符串的SOUNDEX值
UPPER()(Access使用UCASE())将字符串转换为大写

注:SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。eg:SELECT cust_name, cust_contact FROM Customers WHERE SOUNDEX(cust_contact) = SOUNDEX(‘Michael Green’);

输出:
cust_name cust_contact


Kids Place Michelle Green

所以这个函数就是可以按照读音去查找相似的字段值。

常用的日期和时间处理函数

该部分转载自:https://www.cnblogs.com/songlove/p/15521540.html

函数说明
adddate()增加一个日期
addtime()增加一个时间
curdate()返回当前日期
curtime()返回当前时间
date()返回日期时间的日期部分
datediff()计算两个日期之差
date_add()高度灵活的日期计算函数
date_format()返回一个格式化的日期和时间串
day()返回一个日期的天数部分
dayofweek()对于一个日期返回对应的星期几
hour()返回一个时间的小时部分
minute()返回一个时间的分钟部分
month()返回一个日期的月份部分
second()返回一个日期的秒部分
time()返回一个日期时间的时间部分
year()返回一个日期的年份部分
now()返回当前的日期和时间

adddate()

大致可以分为两类用法,第一种,第一个参数为日期,第二个参数为整数时,这时代表的意思是在在此日期基础上增加的天数。

例如:

select ADDDATE(‘2021-11-07’,5);
在这里插入图片描述

第二种:是第一参数为日期,第二个参数为任意时间表达式,该表达式可为多少分钟、或者多少毫秒、亦或者多少周等等。第二个参数的写法为 interval 空格 一个整型的时间量 空格 时间单位

例如:

select ADDDATE(‘2021-11-07’,interval 6243150562 second );
在这里插入图片描述

select ADDDATE(‘2021-11-07’,interval 5 week );
在这里插入图片描述

select ADDDATE(‘2021-11-07’,interval 2 quarter); --增加半年
在这里插入图片描述

addtime()

用法:共有两个参数,第一个参数是要被添加的日期或时间,第二个参数是增加的时间

SELECT ADDTIME(‘1999-12-31 23:59:59.999999’,‘1 1:1:1.000002’);
在这里插入图片描述

curdate()

返回的是当前服务器日期

select curdate();
在这里插入图片描述

curtime()

返回当前服务器的时间信息

select curtime();
在这里插入图片描述

date()

将含有日期和时间的参数返回日期部分

select date(‘2021-07-07 11:11:20’);
在这里插入图片描述
datediff()

计算两个时间的日期差值,共有两个日期时间参数,会拿第一个参数的日期部分减去第二个参数的日期部分,如果第一个参数的时间比第二个参数的时间靠后(通俗点说就是值大)那么差值就是正数,否则为负数

select datediff(‘2021-11-10 11:11:20’,‘2021-11-07 19:13:21’);
在这里插入图片描述

select datediff(‘2021-11-10 11:11:20’,‘2021-12-07 19:13:21’);
在这里插入图片描述

date_add()

这是个灵活的日期计算函数。这个函数有两个参数,第一个参数是要被添加的日期或时间,第二个参数则要自由了很多,可以是毫秒,秒,分,时,星期,年,季度,等等基本可以表示时间的单位,也可以为负数进行减去时间

例如

SELECT DATE_ADD(‘1998-01-01 00:00:00’,INTERVAL ‘-3 20’ DAY_HOUR);–表示的是在1998年1月1日,减去3天零20个小时
在这里插入图片描述

–cast函数一个转换的函数,CAST(6/4 AS DECIMAL(3,1))是转换成小数,值为1.5。HOUR_MINUTE的意思为几小时几分钟,小时与分钟之间
–可以是等号,空格,下划线,小数点等等符号。那么1.5 HOUR_MINUTE就代表一个小时五分钟
SELECT DATE_ADD(‘1970-01-01 12:00:00’, INTERVAL CAST(6/4 AS DECIMAL(3,1)) HOUR_MINUTE);
在这里插入图片描述

date_format()

日期格式化函数是根据格式字符串格式化日期值。以下说明符可以在格式字符串中使用。格式说明符前必须有%字符。date_format(日期,格式化符号);

%a 缩写星期名(Sun…Sat)
%b 缩写月名 (Jan…Dec)
%c 月,数值(0…12)
%D 带有英文前缀的月中的天(0th, 1st, 2nd, 3rd, …)
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒(000000…999999)
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名 (January…December)
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 周 (00-53) 星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名(Sunday…Saturday)
%w 周的天 (0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位
例如:

SELECT DATE_FORMAT(‘2021-11-10 22:23:00’, ‘%W %M %Y’);
在这里插入图片描述

day()

该函数返回一个时间的天数部分,用法 day(时间);与dayofmonth()函数等价

SELECT day(‘2021-11-10 23:59:59.999999’);
在这里插入图片描述

dayofweek()

该函数返回一个时间对应的星期几,用法 dayofweek(时间);

SELECT dayofweek(‘2021-11-10 23:59:59.999999’);
在这里插入图片描述

dayofyear()

该函数是返回一年该日期在此年中第多少天

SELECT dayofyear(‘2021-02-10 23:59:59.999999’);
在这里插入图片描述

hour()

该函数返回此时间的小时部分

SELECT hour(‘2021-02-10 23:59:59.999999’);
在这里插入图片描述

minute()

该函数返回此时间的分钟部分

SELECT minute(‘2021-02-10 23:59:59.999999’);
在这里插入图片描述

month()

该函数返回此时间的月份部分

SELECT month(‘2021-02-10 23:59:59.999999’);
在这里插入图片描述

second()

该函数返回时间的秒数部分

SELECT second(‘2021-02-10 23:59:59.999999’);
在这里插入图片描述

time()

该函数返回日期时间的时间部分

SELECT time (‘2021-02-10 23:59:59.999999’);
在这里插入图片描述

year()

该函数返回日期时间的年份部分

SELECT year (‘2021-02-10 23:59:59.999999’);

now()

该函数返回当前的日期时间

select now();
在这里插入图片描述

strftime()函数

strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。
strftime()的语法是strftime(格式, 日期/时间, 修正符, 修正符, …)
它可以用以下的符号对日期和时间进行格式化:
%d 日期, 01-31、%f 小数形式的秒,SS.SSS、%H 小时, 00-23、%j 算出某一天是该年的第几天,001-366、%m 月份,00-12、
%M 分钟, 00-59、%s 从1970年1月1日到现在的秒数、%S 秒, 00-59、%w 星期, 0-6 (0是星期天)、%W 算出某一天属于该年的第几周, 01-53、%Y 年, YYYY、%% 百分号
strftime()的用法举例如下:

select strftime(’%Y.%m.%d %H:%M:%S’,‘now’,‘localtime’);
结果:2006.10.17 21:41:09
其实更好的用法是这样的,比如统,本月或本年的支出:
select strftime(’%Y-%m’,日期) as 月份,sum(支出) as 月支出 from 流水帐 group by 月份;

常用的数值处理函数

函  数说  明
ABS()返回一个数的绝对值
COS()返回一个角度的余弦
EXP()返回一个数的指数值
PI()返回圆周率
SIN()返回一个角度的正弦
SQRT()返回一个数的平方根
TAN()返回一个角度的正切
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值