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);