轉換函數

如果可以轉換,Presto 會隱含地將數值和字元值轉換為正確的類型。Presto 不會在字元和數值類型之間轉換。例如,期望 varchar 的查詢不會自動將 bigint 值轉換為等效的 varchar。

必要時,可以將值明確地轉換為特定類型。

轉換函數

cast(value AS type) -> type()

明確地將值轉換為類型。這可以用來將 varchar 轉換為數值類型,反之亦然。

try_cast(value AS type) -> type()

cast() 類似,但如果轉換失敗則返回 null。

注意

將字串轉換為整數類型(例如 TINYINTSMALLINTINTEGERBIGINT)時,允許字串中的前導和尾隨空格。請參閱整數

資料大小

parse_presto_data_size 函數支援下列單位

單位

描述

B

位元組

1

kB

千位元組

1024

MB

百萬位元組

10242

GB

十億位元組

10243

TB

兆位元組

10244

PB

拍位元組

10245

EB

艾位元組

10246

ZB

皆位元組

10247

YB

堯位元組

10248

parse_presto_data_size(string) -> decimal(38)

將格式為 value unitstring 解析為數字,其中 valueunit 值的分數數字

SELECT parse_presto_data_size('1B'); -- 1
SELECT parse_presto_data_size('1kB'); -- 1024
SELECT parse_presto_data_size('1MB'); -- 1048576
SELECT parse_presto_data_size('2.3MB'); -- 2411724

其他

typeof(expr) -> varchar()

返回所提供表達式的類型名稱

SELECT typeof(123); -- integer
SELECT typeof('cat'); -- varchar(3)
SELECT typeof(cos(2) + 1.5); -- double