知道 bigquery 中一个月的周数
Know the week number of a month in bigquery
我想知道 bigquery 标准 sql.In postgresql 中日期的一个月的周数,如果我写
select To_char(current_date, 'YYYY-MM-W')
它适用于日期“25-04-2018”作为 2018-04-4。
这里 2018 是年,04 是月,4 是该月的第四周。
我想要 bigquery 标准中的类似内容 sql。
如果我写
select format_date("%Y-%m",current_date())
它只给出 2018-04
我还想知道月份的周数。
提前谢谢你。
这是解决方案(定义可在查询中使用的 UDF)以及示例。
CREATE TEMP FUNCTION DateWithWeekOfMonth(date DATE) AS (
CONCAT(
FORMAT_DATE('%Y-%m-', date),
CAST(DIV(EXTRACT(DAY FROM date), 7) + 1 AS STRING)
)
);
SELECT date, DateWithWeekOfMonth(date)
FROM (
SELECT DATE '2018-04-01' AS date UNION ALL
SELECT DATE '2018-04-07' UNION ALL
SELECT DATE '2018-04-08' UNION ALL
SELECT DATE '2018-04-30'
);
我想知道 bigquery 标准 sql.In postgresql 中日期的一个月的周数,如果我写
select To_char(current_date, 'YYYY-MM-W')
它适用于日期“25-04-2018”作为 2018-04-4。
这里 2018 是年,04 是月,4 是该月的第四周。
我想要 bigquery 标准中的类似内容 sql。
如果我写
select format_date("%Y-%m",current_date())
它只给出 2018-04
我还想知道月份的周数。
提前谢谢你。
这是解决方案(定义可在查询中使用的 UDF)以及示例。
CREATE TEMP FUNCTION DateWithWeekOfMonth(date DATE) AS (
CONCAT(
FORMAT_DATE('%Y-%m-', date),
CAST(DIV(EXTRACT(DAY FROM date), 7) + 1 AS STRING)
)
);
SELECT date, DateWithWeekOfMonth(date)
FROM (
SELECT DATE '2018-04-01' AS date UNION ALL
SELECT DATE '2018-04-07' UNION ALL
SELECT DATE '2018-04-08' UNION ALL
SELECT DATE '2018-04-30'
);