BigQuery interval date Legacy SQL to Standard SQL

อ้างอิงจาก BigQuery Partitioned Tables Limitations section

“You cannot use legacy SQL to query partitioned tables or to write query results to partitioned tables.”

ดังนั้น เมื่อเราทำ Partition Table เพื่อ Performance และลด Cost ในการ query เราจึงต้องแก้ไข query จาก Legacy SQL ให้เป็น Standard SQL

ตัวอย่าง แก้ไขการ Compare Datetime

Legacy SQL

select REQUEST_DATETIME from TABLE where REQUEST_DATETIME >= TIMESTAMP(DATE_ADD("2018-04-27 10:48:34",-7,"HOUR"))

Standard SQL
1. แก้ไข TABLE เป็น `TABLE`
2. เพิ่ม #standardSQL ที่บรรทัดแรกเพื่อบอกว่า query ข้างล่างจะเป็นแบบ Standard SQL
3. ใช้ DATETIME_ADD function แทน DATE_ADD function

#standardSQL
select REQUEST_DATETIME from `TABLE` where
REQUEST_DATETIME >= TIMESTAMP(DATETIME_ADD("2018-04-27 10:48:34",INTERVAL -7 HOUR))

REQUEST_DATETIME type is TIMESTAMP

As google bigquery > Query Editor

BigQuery interval date Legacy SQL to Standard SQL

References
https://cloud.google.com/bigquery/docs/reference/standard-sql
https://cloud.google.com/bigquery/docs/reference/legacy-sql

Related posts:

This entry was posted in BigQuery, technology. Bookmark the permalink.