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 入门

¡Vamos a practicar!

Snowflake SQL 入门

Preparing Video For Download...