我想接受这个查询(对我有用):
SELECT(DATE_ADD(DATE(CURRENT_TIMESTAMP()), INTERVAL 1* n MONTH)) as date
FROM UNNEST(GENERATE_ARRAY(0,12,1)) n
将CURRENT_TIMESTAMP()
替换为现有表中的start_date
时间戳字段。
换句话说,我想创建一个"活跃月份列表"对于以start_date
开头的合同。
我对如何合并另一个FROM
条款感到困惑!
答案 0 :(得分:1)
这应该有效:
SELECT(DATE_ADD(DATE(start_date), INTERVAL 1* n MONTH)) as date
FROM ExistingTable, UNNEST(GENERATE_ARRAY(0,12,1)) n
如果现有表中只有一行代表开始日期,则可以使用子选择:
SELECT(DATE_ADD(DATE((SELECT start_date FROM ExistingTable)), INTERVAL 1* n MONTH)) as date
FROM UNNEST(GENERATE_ARRAY(0,12,1)) n