本文為您介紹進階搜尋中可以使用的函數。
to_char(timestamp/timestamptz, text)
傳回型別:TEXT。
描述:將時間戳記轉換為字串,預設支援時間範圍為1925年~2282年。
格式:
第一個參數表示待轉換時間,第二個參數表示轉換格式。
YYYY對應年,MM對應月,DD對應日,HH對應時,MI對應分,SS對應秒。可以使用to_char函數進行24小時制和12小時制的轉換,
HH24對應24小時制,HH12對應12小時制,預設為12小時制。
使用樣本:
樣本情境
請求樣本
返回樣本
將建立時間轉換為24小時制。
SELECT TO_CHAR(NOW(), 'YYYY-MM-DD');20221208
to_timestamp(text, text)
傳回型別:TIMESTAMPTZ。
描述:將字串轉換為時間戳記,預設支援時間範圍為1925年~2282年。
格式:第一個參數表示待轉換時間,第二個參數表示轉換格式。
使用樣本:
樣本情境
請求樣本
返回樣本
TEXT類型的表欄位轉換為日期。
SELECT TO_TIMESTAMP(properties ->> 'ExpireTime', 'YYYY-MM-DD') FROM resources WHERE resource_type = 'ACS::RDS::DBInstance';2001-09-28
clock_timestamp()
傳回型別:TIMESTAMPTZ。
描述:擷取目前時間。
使用樣本:
樣本情境
請求樣本
返回樣本
擷取目前時間。
SELECT CLOCK_TIMESTAMP();2023-09-02T11:47:19Z
concat(param1 [,param2]...)
傳回型別:TEXT。
描述:串連所有參數。忽略NULL參數。
格式:第一個參數表示任何資料類型的值(必選),第二個參數表示需要串連的任何資料類型的值(可選)。
使用樣本:
樣本情境
請求樣本
返回樣本
串連所有參數。忽略NULL參數。
SELECT CONCAT('abcde', 2, NULL, 22);concat
--------
abcde222
concat_ws(separator, param1 [,param2]...)
傳回型別:TEXT。
描述:使用分隔字元串連除第一個參數外的所有參數。忽略NULL參數。
格式:第一個參數表示分隔字元,第二個參數表示需要串連的任何資料類型的值(必選),第三個參數表示需要串連的任何資料類型的值(可選)。
使用樣本:
樣本情境
請求樣本
返回樣本
使用分隔字元串連除第一個參數外的所有參數。忽略NULL參數。
SELECT concat_ws(',', 'abcde', 2, NULL, 22);concat_ws
--------
abcde,2,22
substring()
傳回型別:TEXT。
描述:從字串中找到子字串。
格式:
substring(string[FROM start][FOR length])或substring(string FROM pattern)。具體如下:string:必選。 一個字串。
start:可選。 子字串的起始位置。預設是 1,也就是字串的開頭。
length:可選。 子字串的長度。預設是提取到字串的結尾。
pattern:必選。 Regex。
FROM pattern子句中使用的是POSIXRegex;SIMILAR pattern子句中使用的是SQLRegex。
使用樣本:
樣本情境
請求樣本
返回樣本
從字串中找出指定的子字串。
SELECT SUBSTRING('Thomas' FROM 2 FOR 3);substring
-------
hom
從字串中找出與POSIXRegex匹配的子字串。
SELECT SUBSTRING('Thomas' FROM '...$');substring
--------
mas
char_length(string)
傳回型別:INT。
描述:擷取字串的字元長度。
使用樣本:
樣本情境
請求樣本
返回樣本
擷取字串的字元長度。
SELECT CHAR_LENGTH('jose');4
length(string)
傳回型別:INT。
描述:擷取字串的位元組長度,使用UTF-8編碼字元集時,一個漢字是3位元組,一個數字或字母是一個位元組。
使用樣本:
樣本情境
請求樣本
返回樣本
擷取字串的長度。
SELECT LENGTH('jose');4
lower(string)
傳回型別:TEXT。
描述:轉換字串為小寫格式。
使用樣本:
樣本情境
請求樣本
返回樣本
轉換字串為小寫格式。
SELECT LOWER('TOM');tom
upper(string)
傳回型別:TEXT。
描述:轉換字串為大寫格式。
使用樣本:
樣本情境
請求樣本
返回樣本
轉換字串為大寫格式。
SELECT UPPER('tom');TOM
starts_with(string, string)
傳回型別:TEXT。
描述:第一個參數表示需要處理的字串,第二個參數表示字串首碼,如果字串string以指定的首碼開頭,那麼
starts_with()函數返回true,否則返回false。使用樣本:
樣本情境
請求樣本
返回樣本
判斷alphabet是否以alph開頭。
SELECT starts_with('alphabet', 'alph');true
case
描述:在指定的條件運算式為TRUE時執行一組單個或多個語句。
使用樣本:
樣本情境
請求樣本
返回樣本
通過CASE轉換ECS執行個體的狀態。
SELECT resource_id, CASE properties ->> 'Status' WHEN 'Pending' THEN '建立中' WHEN 'Running' THEN '運行中' WHEN 'Starting' THEN '啟動中' WHEN 'Stopping' THEN '停止中' WHEN 'Stopped' THEN '已停止' END AS "狀態" FROM resources WHERE resource_type = 'ACS::ECS::Instance' ORDER BY resource_id;resource_id 狀態 ------------+----------- 1 i-xxx 運行中
count
傳回型別:INT。
描述:返回指定表滿足查詢條件的結果行數。
使用樣本:
樣本情境
請求樣本
返回樣本
計算阿里雲資源數量。
SELECT count(*) FROM resources;1123
max
描述:求數實值型別運算式的最大值。
使用樣本:
樣本情境
請求樣本
返回樣本
查詢建立時間最大的資源。
SELECT MAX(create_time) FROM resources;2023-09-13T07:32:37Z
min
描述:求數實值型別運算式的最小值。
使用樣本:
樣本情境
請求樣本
返回樣本
查詢建立時間最小的資源。
SELECT MIN(create_time) FROM resources;2021-08-20T02:20:37Z
jsonb_array_elements(jsonb)
描述:把一個JSONB數組擴充成一個JSONB值的集合。
使用樣本:
樣本情境
請求樣本
返回樣本
列出所有的IP地址。
SELECT DISTINCT JSONB_ARRAY_ELEMENTS(ip_addresses) AS ip_address FROM resourcesip_address ----------- "172.X.X.1" "172.X.X.2" "172.X.X.3"
jsonb_array_elements_text(jsonb)
描述:把一個JSONB數組擴充成一個TEXT值集合。
使用樣本:
樣本情境
請求樣本
返回樣本
列出所有的IP地址。
SELECT DISTINCT JSONB_ARRAY_ELEMENTS_TEXT(ip_addresses) AS ip_address FROM resourcesip_address ----------- 172.X.X.1 172.X.X.2 172.X.X.3
jsonb_object_keys(jsonb)
描述:返回最外層JSONB對象中的鍵集合。
使用樣本:
樣本情境
請求樣本
返回樣本
列出所有的標籤鍵。
SELECT DISTINCT JSONB_OBJECT_KEYS(tags) AS tag_key FROM resourcestag_key ------------------ key_1 key_2