Ниже для BigQuery Standard SQL
#standardSQL
SELECT
DATE_SUB(
DATE_ADD(PARSE_DATE('%Y.%m', yearmonth), INTERVAL 1 MONTH),
INTERVAL 1 DAY
) MonthLastDate
Вы можете протестировать / поиграть с вышеперечисленными, используя ниже фиктивные данные
#standardSQL
WITH `project.dataset.table` AS (
SELECT '2018.04' AS yearmonth UNION ALL
SELECT '2018.02'
)
SELECT
yearmonth,
DATE_SUB(
DATE_ADD(PARSE_DATE('%Y.%m', yearmonth), INTERVAL 1 MONTH),
INTERVAL 1 DAY
) MonthLastDate
FROM `project.dataset.table`
результат
Row yearmonth MonthLastDate
1 2018.04 2018-04-30
2 2018.02 2018-02-28