trino学习日志

1.时间类型转化

  1. 2021-01-14转为20210114,有以下两种方式
1. CAST(date_format(date'2021-01-14','%Y%m%d') AS INTEGER)
2. year(date'2021-01-14')*10000+month(date'2021-01-14')*100+day(date'2021-01-14')

2021-01-14 转为202101,有以下两种方式

1. CAST(date_format(date'2021-01-14','%Y%m') AS INTEGER)
2. year(date'2021-01-14')*100+month(date'2021-01-14')

20210114转为2021-01-14

 date(date_parse('20211012','%Y%m%d')) 

2.常用语法

to_char(M_CREATE_DATE,‘yyyymmdd’) —日期转字符串
date_diff(‘month’,M_EFF_DATE,m_exp_date) MONTHS --时间差:月数
cast(a.offer_spec_id as VARCHAR) 数值型转字符串
coalesce(C.KJ_PHONE_NUMBER,D.device_number) PHONE_NO —空置填充

SHOW FUNCTIONS; DESC FUNCTIONS 函数名;–可以看到所有可用的函数
DESC FUNCTION EXTENDED 函数名;–函数具体使用方法

3. 注意事项

1、trino中不支持nvl()函数,需要将nvl转换成case when形式或者coalesce();
2、date_format()函数需要转换写法
获取当前日期:

select date_format(current_date, '%Y%m%d');

获取当前时间:

Select date_format(current_timestamp, '%Y-%m-%d %H:%i:%s')或者Select date_format(current_timestamp, '%Y-%m-%d %T');

3、使用关键字当字段名时,需要加双引;
4、需要使用时间戳时 需要在时间前面加上timestamp:

select case when        current_timestamp<timestamp '2022-04-21 07:26:16' then 1 else 0 end 

5、字段置空时 需要置为 null;
6、在trino建Oracle表时,需要指定字符串长度:varchar(50),否则会变成NCLOB类型
7、时间戳转日期:

select format_datetime(from_unixtime(current_date), 'yyyyMMdd')

8、整数除以整数,想保留两位小数值:a*1.00/b
9、日期转字符串:

select date_format(current_date, '%Y%m%d') 
 select date(current_date)

10、字符串转日期:

select format_datetime(current_date, 'yyyyMMdd')

11、当前日期减一:

Select current_date - interval  '1' day

12、两个日期差:

Select date_diff('day',date'2021-05-24',current_date);
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大大大荣子哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值