Snowflake SQL 資料型別

Snowflake SQL 入門

George Boorman

Senior Curriculum Manager, DataCamp

常見資料型別

類別 資料型別
文字/字串 VARCHAR, CHAR, TEXT
Snowflake SQL 入門

常見資料型別

類別 資料型別
文字/字串 VARCHAR, CHAR, TEXT
數值 INTEGER
Snowflake SQL 入門

常見資料型別

類別 資料型別
文字/字串 VARCHAR, CHAR, TEXT
數值 INTEGER
布林 BOOLEAN
Snowflake SQL 入門

常見資料型別

類別 資料型別
文字/字串 VARCHAR, CHAR, TEXT
數值 INTEGER
布林 BOOLEAN
日期/時間 DATE, TIME, TIMESTAMP
1 https://docs.snowflake.com/en/sql-reference/intro-summary-data-types
Snowflake SQL 入門

Snowflake SQL 資料型別 - NUMBER

NUMBER(p, s)

 

  • NUMERIC 在 Snowflake 中等同於 NUMBER
  • p = 精度;s = 小數位數
  • ps 的最大值:38
    • 超過會造成四捨五入!
Snowflake SQL 入門

Snowflake SQL 資料型別 - TIMESTAMP_LTZ

  • TIMESTAMP_LTZ
    • DATETIME 結合並含本地時區
    • 格式:YYYY-MM-DD HH:MI:SS

 

CREATE TABLE orders (
  -- Timestamp with local time zone
  order_timestamp TIMESTAMP_LTZ
  )

本地時區時間戳資料

Snowflake SQL 入門

資料型別轉換 - 是什麼?

  • 將資料從一種型別轉成另一種

將訂單數量欄位從文字轉為數字

Snowflake SQL 入門

資料型別轉換 - 為什麼?

  • 提升效能
  • 資料正確與一致
  • 資料品質
Snowflake SQL 入門

資料型別轉換 - 怎麼做?

  1. CAST

    語法:

    • CAST( <source_data/column> AS <target_data_type> )

    • CAST('80' AS INT)

  2. ::

    語法:

    • <source_data/column>::<target_data_type>

    • '80'::INT

Snowflake SQL 入門

CAST

SELECT CAST(order_timestamp AS DATE) 
       AS order_date 
FROM orders
Snowflake SQL 入門

CAST 結果

轉換前的 order_timestamp_ltz

轉換後的訂單日期資料

Snowflake SQL 入門

轉換函式

  • 範例:TO_VARCHARTO_DATE

TO_VARCHAR

  • TO_VARCHAR( <expr> )

    • expr - 數值、時間戳等

    • 結果:VARCHAR

範例

SELECT TO_VARCHAR(86)

結果

86

Snowflake SQL 入門

檢查資料型別

DESC TABLE orders
name        type            kind     null?    default     primary key    
ORDER_ID    NUMBER(38,0)    COLUMN   N        null        Y    
ORDER_DATE  DATE            COLUMN   Y        null        N    
ORDER_TIME  TIME(9)         COLUMN   Y        null        N
Snowflake SQL 入門

一起來練習吧!

Snowflake SQL 入門

Preparing Video For Download...