没有经过系统梳理 不足为看
时间转时间戳: cast(to_unixtime(timestamp ‘2016-09-01 01:00:00’) as bigint)
int 转 varchar :cast(1 as varchar)
varchar 转int:cast(‘1’ as bigint)
map数据查询:element_at(url_parsed,‘do’)
数据包含 contains(x, element)
时间戳转格式化时间:
select format_datetime(from_unixtime(cast(view_time as bigint)),‘yyyyMMddHHmmss’)
select format_datetime(from_unixtime(1433181293),‘yyyyMMddHHmmss’)
原文链接:https://blog.csdn.net/Eos0422/article/details/89203027
1、找出时间大于2018-12-17的所有内容
select * from table where “time” > date(‘2018-12-17’)
与关系型数据库不同的是完全不同类型的不可以比较,类似的才可以比较,关系型数据库的
2、针对完全不同类型的进行比较,也可以使用cast函数,用法:cast(value as type)
比如 select * from table where “time” > cast(‘2018-12-17’ as date) limit 100,
3、表示日期的函数:
(1)now() 精确到今天的时分秒
(2) current_date 精确到今天的年月日
(3) current_date - interval ‘1’ day, 精确到昨天的年月日
(4)日期类型不能与字符串比较,运行错误,需要显式转换
(5)字符串格式化成日期格式
date_parse('2018-12-17 12:12:12', '%Y-%m-%d %H:%i:%s'),
cast('2018-09-09' as date),
cast('2018-09-09 12:12:12' as timestamp),
(6) 日期转指定格式化字符串
date_format(now(), '%Y-%m-%d %H:%i:%s')
(7)转换为时间戳
to_unixtime(cast ('2018-12-18 09:18:09.000' as timestamp))
关于时间的文档:https://prestodb.io/docs/current/functions/datetime.html
COUNT(DISTINCT a) OVER (PARTITION BY c)
count(1) 不管有没有值,只要有这条记录,值就加1
row_number:赋予唯一的连续位次。
to_data:取出字符串中的日期部分
SELECT rank() OVER (ORDER BY sum(b))
FROM T
GROUP BY a;
7、说明:添加主键: Alter table tabname add primary key(col)
说明:删除主键: Alter table tabname drop primary key(col)
8、说明:创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement
删除视图:drop view viewname