2017-08-29 134 views

回答

1

这真的归结为个人喜好;由于它们具有相同的语义和性能,因此一个并不优于另一个。支持使用EXTRACT的观点是,如果您在选择列表中提取其他日期/时间部分,则会反映它们。例如:

SELECT 
    EXTRACT(DATE FROM TIMESTAMP_MILLIS(timestamp)) AS date, 
    EXTRACT(ISOYEAR FROM TIMESTAMP_MILLIS(timestamp)) AS iso_year, 
    EXTRACT(ISOWEEK FROM TIMESTAMP_MILLIS(timestamp)) AS iso_week 
FROM YourTable; 

相比:

SELECT 
    DATE(TIMESTAMP_MILLIS(timestamp)) AS date, 
    EXTRACT(ISOYEAR FROM TIMESTAMP_MILLIS(timestamp)) AS iso_year, 
    EXTRACT(ISOWEEK FROM TIMESTAMP_MILLIS(timestamp)) AS iso_week 
FROM YourTable; 
+0

谢谢,艾略特! –