失效链接处理 |
Apache Drill常用函数 PDF 下载
本站整理下载:
相关截图:
主要内容:
类型转换
CAST
CAST函数将一种实体(例如,求值为单个值的表达式)从一种类型转换为另一种类型。语法:CAST (<expression> AS <data type>)。使用CONVERT_TO和CONVERT_FROM而不是CAST函数来转换二进制数据类型。您可以将字符串或数字值转换为小数,即使它们包含小数点也是如此。 如果某个值的小数位数和精度大于查询中指定的小数位数和精度,则该值将四舍五入以适合指定的小数位数和精度。您不能将包含小数点的字符串强制转换为INT或BIGINT。 例如,如果JSON文件中包含“ 1200.50”,则尝试选择字符串并将其强制转换为INT会失败。 解决方法是,转换为FLOAT或DOUBLE类型,然后转换为INT,假设您要丢失小数点右边的数字。如:CAST('1' as DECIMAL(28, 2))结果为1.00;数字转字符:CAST(456 as CHAR(3))。
CONVERT_TO 和CONVERT_FROM
CONVERT_TO和CONVERT_FROM函数根据数据的小端或大端字节序编码,将二进制数据与Drill内部类型进行相互转换。CONVERT_FROM('{x:100, y:215.6}' ,'JSON') 将字符串转换为JSON映射。
字符串转日期类型
TO_DATE 字符串转日期
语法:TO_DATE (expression [, 'format']),expression是一个日期字符串或UNIX毫秒时间,format对应日期字符串的格式,必须严格一致。如:to_date(‘2021-03-10 12:32:00’, ‘yyyy-MM-dd HH:mm:ss’),结果为:2021-03-10。
TO_TIME 字符串转时间
语法:TO_TIME(expression [,’format’]) ,expression是一个时间字符串或UNIX毫秒时间,format对应日期字符串格式。如:to_time(‘12:30:00’,’HH:mm:ss’) 结果为:12:30:00; to_time('2019-08-26 09:41:01', 'yyyy-MM-dd HH:mm:ss') 结果为:09:41:01。
TO_TIMESTAMP 字符串转日期时间
语法:TO_TIMESTAMP (expression [, 'format']),expression是一个日期字符串或UNIX毫秒时间,format对应日期字符格式。如:TO_TIMESTAMP('2008-2-23 12:00:00', 'yyyy-MM-dd HH:mm:ss'),结果为:2008-2-23 12:00:00;如果只有时间部分,则日期部分为:1970-01-01,如:to_timestamp('09:41:01', 'HH:mm:ss')结果为:1970-01-01 09:41:01;如果只有日期部分,则时间部分为:00:00,如:to_timestamp('2021-03-19', 'yyyy-MM-dd')结果为:2021-03-19 00:00
在查询条件里面使用日期类型,需要注意不同日期转换函数的结果的时间范围是不同的,需要将日期字符串转换为和日期字段的时间类型一致,才能保证比较结果的正确性。语法:SELECT <fields> FROM <plugin> WHERE TO_DATE(<field>, <format>) < TO_DATE (<value>, <format>)。以mongodb为例,默认的日期类型是对应这里的TIMESTAMP类型,所以在比较时也可以不对日期字段值做转换,只需处理参数值为to_timestamp(value,format)即可。如:SELECT * from mongo.db_txl.test where updateTime> to_timestamp('2019-08-26 09:10:00', 'yyyy-MM-dd HH:mm:ss')
TO_CHAR转字符串
将数字,日期,时间或日期时间转换为字符串。语法:TO_CHAR (expression, 'format'),expression是一个INTEGER,FLOAT,DOUBLE,DATE,TIME或TIMESTAMP表达式。
浮点数转字符,TO_CHAR(1256.789383, '#,###.###') 将FLOAT转换为字符串。 格式规格使用逗号分隔千位并四舍五入到小数点后三位。
日期转字符串,TO_CHAR((cast ('2008-2-23' as date)), 'yyyy-MM-dd') 将日期按指定日期格式转换为字符串。
|