ในกรณีที่เราโหลดข้อมูลมาแล้วเป็นประมาณนี้
| 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