刷SQL题用到的一些函数

前言

在这里记录下刷SQL题用到的函数(逐渐积累)


一、日期相关函数

1、获取年月日

1)获取年份:select year(CURRENT_DATE) AS 年 ;
2)获取月份:select month(CURRENT_DATE) AS 月;
3)获取日   :select day(CURRENT_DATE) AS 日;

2、日期时间戳转化

1)日期转化为时间戳:SELECT UNIX_TIMESTAMP(NOW()); // 1539238930
2)时间戳转化为日期:SELECT FROM_UNIXTIME(1539238971); // 2018/10/11 14:22:51

3、日期之差

1)日期相差 TIMESTAMPDIFF(unit,begin,end);
这个函数返回end-begin的结果,begin和end类型为DATE或者DATETIME表达式,unit为结果的单位,表示为整数。

参数单位
SECOND
MINUTE分钟
HOUR小时
DAY
WEEK月份
MONTH月份
YEAR年份

4、日期格式化

1)data_format格式化为想要的格式
Mysql中:

select * from test where date_format(create_time,'%Y-%m-%d') = '2020-11-04' ;

Hive中:

select * from test where date_format(create_time,'yyyy-MM-dd') = '2020-11-04' ;

2)提取日期表达式中的日期部分
Mysql中:DATE(timestamp)
Hive中:to_date(string timestamp)

5、日期加减

1)MySQL中:DATE_ADD(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
在这里插入图片描述
2)Hive中:date_add(string startdate, intdays)
返回开始日期startdate增加days天后的日期。

二、数据格式相关函数

1、保留小数

1)round(x,d):x是要进行处理的数,d是保留的小数位数,round(x)默认不保留小数
2)cast(score as decimal(10,3)):强制把score的类型转化为decimal(10,3),最多存储10位数字,小数为3位,即-9999999.999~9999999.999

三、字符串相关函数

1、字符串拼接

1)CONCAT(string A, string B…):参数可以为多个字符串,返回结果是一个字符串。PS:求比率时可以加%使用。
2)CONCAT_WS(separator, str1, str2,...):第一个参数是多个字符串之间的分隔符。
如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间

Hive> SELECT CONCAT_WS(",","First name","Second name","Last Name");

 'First name,Second name,Last Name'
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值