sql string转为日期_数据分析sql从入门到精通--sql函数用法

2b57c78154e064a5d3f3c7554f4db9e7.png

前面几篇文章已经接触过一系列SQL函数,本文重点介绍文本和字符串处理函数,日期和时间处理函数,数值处理函数,便于用户编写sql处理格式化、过滤和数据。同时注意,虽然每种数据库管理系统都提供各种函数,但是具体实现差异都比较大,不可移植。我们学习函数,第一有可能很多查询不用函数无法实现,第二虽然很多函数不可移植或者通用,但是每种数据库系统都提供类似功能的函数。

一、日期处理函数

一般数据库中的日期时间类型有date、time、datetime和timestamp,相关函数的主要功能就是处理相关格式转化以及和字符串的转化。

SELECT NOW(),YEAR(NOW()),MONTH(NOW()),DAY(NOW());

fd71740720cd315b6776225de3f57503.png

SELECT NOW(),HOUR(NOW()),MINUTE(NOW()),SECOND(NOW());

8155fc58bd0d3a89b43b532df92eace1.png

SELECT DAYNAME('2019-05-03'),MONTHNAME('2019-05-03'),QUARTER('2019-05-03');

326847e139531a44a879c950695576ac.png

DAYOFWEEK(date):返回日期date的星期索引(1=星期天,2=星期一, …7=星期六)。

SELECT NOW(),DAYOFWEEK(NOW()),DAYOFMONTH(NOW()),DAYOFYEAR(NOW());

409d7dd1c5c92159151eaae2d47bb6f0.png

DATE_ADD(date,INTERVAL expr type) ,进行日期增加的操作,可以精确到秒
DATE_SUB(date,INTERVAL expr type) ,进行日期减少的操作,可以精确到秒

SELECT DATE_SUB(CURDATE(), INTERVAL 31 DAY), CURDATE(),DATE_ADD(CURDATE(),INTERVAL 2 DAY);

c6fa200ebb261e80c5a6465afd4966d1.png

SELECT NOW(),DATE_ADD(NOW(), INTERVAL "1:1" HOUR_MINUTE), DATE_ADD(NOW(), INTERVAL "3" HOUR);

e3bbd7287d456266354e69f65801aff7.png

SELECT CURTIME(),CURDATE(),NOW();

d8e70d26e80e4fcae3cf6eaedf704d62.png

DATE_FORMAT(date,format)函数用于把日期转化各种格式,下表是相关格式说明。

83693bd52ceb3ecf4da160a10a10a25d.png

SELECT DATE_FORMAT(NOW(),'%m-%d-%Y'),DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p');

5411dd586279a37ee1e758f29c6eafb0.png

str_to_date('2019-10-16 18:30:24','%Y-%m-%d %H:%i:%s')函数类似和dateformat效果。

时间戳timestamp也是sql常用的一种时间类型。

select from_unixtime(1488160428,'%Y-%m-%d %T'),unix_timestamp(now());

29c845d99a6d199d6caa88da04f1a6af.png

timestampdiff(interval, datetime1,datetime2),返回时间差,结果单位由interval参数给出,interval有second,minute,hour,day,month,year,week,quarter等。

SELECT TIMESTAMPDIFF(HOUR,'2019-10-01','2020-01-13'), DATEDIFF('2019-10-01','2020-01-13');

8d50d3e78d0ad45b97abbd506247bd95.png

二、字符串处理

拼接字段:CONCAT(str1,str2,...):返回来自于参数连结的字符串,可以有多个参数。

SELECT CONCAT(NAME,'(',department,')') FROM student;

8bf51b19f8480765434f2dd7e241ee7a.png

SELECT LOWER('TEST'), UPPER('test') FROM student;处理大小写转化。

da569989a95641e63119babc317644d9.png

注意:sql关键词本身大小写不敏感,也就是selete,from等大小写不影响。

Length返回字符串长度:

SELECT NAME,LENGTH(NAME),department,LENGTH(department) FROM student;

1e85f062f16a1dface27483f86ca8f27.png

trim(char from x) 删除首部、尾部字符,相应的LTRIM和RTRIM处理首部和尾部。

SELECT LTRIM(' student '),TRIM(' student '),RTRIM(student ');

06d7aeaa1bed24aca052b503a25a2a91.png

substr(字符串,start [,length]) 取子串

SELECT SUBSTR(NAME,1,1),NAME,SUBSTR(department,1,LENGTH(department)/3-1), department FROM student;

a2fe04bbe119114f1a972c23812ce2ab.png

replace(x,search_string,replace_string) 字符替换

SELECT REPLACE(department,'系','学院'),department FROM student;

181536d6806cd20c52f05e3c4081a10d.png

三、数值处理函数

Abs:返回绝对值

Exp:值e的n次方,自然对数的底

Sqrt:返回非负数n的平方根

Pow:返回值x的y次幂

Mod或者%:返回N被M除的余数

Ceiling:不小于X的最小整数值

Round:四舍五入的一个整数

SELECT ABS(-45),CEILING(1.34),ROUND(5.67);

b6301b5a975bd7d0fa8499fea3268a2f.png

SELECT POW(3,2),SQRT(4),EXP(2),MOD(5,2);

e4057d79f63f0c1e13aa6ac16083cb36.png

其他函数还有汇总函数,条件函数,可以参考前面几篇文章。

SQL函数包括大量的可用函数,包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数可以简化用户的操作,使用时可以查询相关资料和手册。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值