以下是 BigQuery 标准 SQL
它应该让您了解如何在 BigQuery 中处理日期
#standardSQL
SELECT
date_today,
day_passed,
DATE_SUB(date_today, INTERVAL day_passed DAY) day_joined,
DATE_TRUNC(DATE_SUB(date_today, INTERVAL day_passed DAY), MONTH) month_joined_as_date,
FORMAT_DATE('%Y-%m', DATE_SUB(date_today, INTERVAL day_passed DAY)) month_joined_as_string
FROM `yourproject.yourdataset.yourtable`
您可以使用以下问题中的虚拟数据测试/玩上述内容
#standardSQL
WITH `yourproject.yourdataset.yourtable` AS (
SELECT DATE '2018-01-22' date_today, 32 day_passed
)
SELECT
date_today,
day_passed,
DATE_SUB(date_today, INTERVAL day_passed DAY) day_joined,
DATE_TRUNC(DATE_SUB(date_today, INTERVAL day_passed DAY), MONTH) month_joined_as_date,
FORMAT_DATE('%Y-%m', DATE_SUB(date_today, INTERVAL day_passed DAY)) month_joined_as_string
FROM `yourproject.yourdataset.yourtable`
结果
date_today day_passed day_joined month_joined_as_date month_joined_as_string
2018-01-22 32 2017-12-21 2017-12-01 2017-12