我的表中有两个TIMESTAMP列:customer_birthday和Purchase_date。我想创建一个查询以按客户年龄显示购买数量,以创建图表。
但是,如何使用BigQuery计算年龄(以年为单位)?换句话说,我如何得到两个时间戳之间的年份差异?由于leap年,不能使用天或小时来计算年龄,因此该功能DATEDIFF(<timestamp1>,<timestamp2>)
不合适。
谢谢。
您可以计算如果所有年份都长365天,将得出的天数,将其相乘并除以365。例如:
SELECT (day2-day1)/365
FROM (
SELECT YEAR(t1) * 365 + DAYOFYEAR(t1) as day1,
YEAR(t2) * 365 + DAYOFYEAR(t2) as day2
FROM (
SELECT TIMESTAMP('20000201') as t1,
TIMESTAMP('20140201') as t2))
即使存在leap年,也将返回14.0。如果希望最终结果为整数而不是浮点数,则可以使用该INTEGER()
函数强制转换结果。
请注意,如果其中一个日期是a日(2月29日),则距离3月1日似乎已经一年了,但是我认为这听起来像是预期的行为。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句