ในกรณีที่เราโหลดข้อมูลมาแล้วเป็นประมาณนี้
ts |
---|
1541106132796 |
1541107493796 |
1541109015796 |
ชนิดข้อมูลอาจจะเป็น BIGINT
ทีนี้วิธีการแปลงให้เป็น timestamp เราสามารถใช้ query ได้ตามนี้
SELECT TIMESTAMP 'epoch' + ts * interval '1 second' AS new_ts
from a_table
เราก็จะได้ฟิลด์ที่ชื่อ new_ts
ที่เป็นชนิด TIMESTAMP
มาเรียบร้อย
หรือว่าในจังหวะที่เราโหลดข้อมูลเลย เช่น จาก S3 เราสามารถเขียนคำสั่ง COPY
ได้ตามนี้
COPY my_table FROM 's3://somehwere/data'
CREDENTIALS 'aws_iam_role=arn:aws:iam::xxx:role/myRedshiftRole'
TIMEFORMAT 'epochmillisecs'
REGION 'us-west-2'
ตรง TIMEFORMAT
จะเป็นการบอกว่าข้อมูลที่จะเข้ามาในฟิดล์ที่เป็น TIMESTAMP
มันเป็นหน่วย milliseconds อยู่นะ ให้แปลงค่าด้วย
Reference: Data conversion parameters - Amazon Redshift