我可以使用这里的函数从我的表中获取每年和每日、星期几的数据。但是我需要方法来实现另外两种类型的函数 Quaterly 和 Weekly,比如 SQL Offers 中的 DatePart。建议任何实现它的方法。
4 回答
在您链接到的同一页面上提到了函数 UTC_USEC_TO_WEEK。这将帮助您获得工作日。
对于季度,类似这样的查询可能会起作用......
select INTEGER(INTEGER(SUBSTR(date_time, -14, 2))/3) AS QUARTER, count(date_time) as count
from company.summary GROUP BY QUARTER
我的日期时间字符串为年-月-日+时间格式,例如...
2012-07-01 23:59:59
尝试使用这个
EXTRACT(QUARTER FROM date) 作为季度
您可以使用STRFTIME_UTC_USEC(timestamp_usec,'date_format_str')
%m 格式来接收月份 (1-12) 和 if 语句。一个例子是:
IF(STRFTIME_UTC_USEC(timestamp_usec,'%m') IN (1,2,3),'Q1',IF(STRFTIME_UTC_USEC(timestamp_usec,'%m') IN (4,5,6),'Q2',IF( STRFTIME_UTC_USEC(timestamp_usec,'%m') IN (7,8,9),'Q3','Q4')))
标准 SQL
CASE
WHEN EXTRACT(MONTH FROM date) BETWEEN 7 AND 9 THEN 'Q1'
WHEN EXTRACT(MONTH FROM date) BETWEEN 10 AND 12 THEN 'Q2'
WHEN EXTRACT(MONTH FROM date) BETWEEN 1 AND 3 THEN 'Q3'
WHEN EXTRACT(MONTH FROM date) BETWEEN 4 AND 6 THEN 'Q4'
END AS quarter