从存储为整数的时间戳中提取小时的时间是否比EXTRACT(从TIMESTAMP_SECONDS(visitStartTime)小时起)更短?

时间:2017-03-30 13:10:38

标签: google-bigquery standard-sql

与主题一样。虽然使用standard-sql是一种从存储为整数的时间戳中提取小时(或其他日期部分)的简短方法,而不是EXTRACT(HOUR FROM TIMESTAMP_SECONDS(visitStartTime))?

1 个答案:

答案 0 :(得分:4)

在这种情况下,当您觉得某些内容应该有更短的表达方式时,您可以使用User-Defined Functions

见下面的例子

  
CREATE TEMPORARY FUNCTION HOUR(time INT64)
RETURNS INT64 AS (
  EXTRACT(HOUR FROM TIMESTAMP_SECONDS(time))
);

SELECT 
  HOUR(visitStartTime) as `shorertWay`, 
  EXTRACT(HOUR FROM TIMESTAMP_SECONDS(visitStartTime)) as `longerWay`
FROM `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910`
LIMIT 10

所以,现在而不是

EXTRACT(HOUR FROM TIMESTAMP_SECONDS(visitStartTime)) 

你可以使用

HOUR(visitStartTime)