sql - 我想从日期中提取月份和日期
问题描述
我的代码
SELECT
PARSE_DATE('%Y%m%d', CAST(date AS STRING)) AS date,
EXTRACT(DAY from date) AS day_of_month,
EXTRACT(MONTH from date) AS week_of_year,
channelGrouping, deviceCategory, sessions, conversions,
我想将列中的日期(格式为 20170101)转换为 2017-01-01。
然后我想从中提取月份和日期。但是我不断收到错误消息:
参数类型的函数 EXTRACT 没有匹配的签名:DATE_TIME_PART FROM INT64。支持的签名:EXTRACT(DATE_TIME_PART FROM DATE); EXTRACT(DATE_TIME_PART FROM TIMESTAMP [AT TIME ZONE STRING]); 提取(DATE_TIME_PART FROM DATETIME);EXTRACT(DATE_TIME_PART FROM TIME) [1:60]
解决方案
BigQuery 标准 SQL 的以下几个选项 - 避免多次预解析
选项1
SELECT
date,
EXTRACT(DAY FROM date) AS day_of_month,
EXTRACT(WEEK FROM date) AS week_of_year,
channelGrouping, deviceCategory, sessions, conversions,
FROM `project.dataset.table`,
UNNEST([PARSE_DATE('%Y%m%d', CAST(date AS STRING))]) date
选项 2
SELECT
date,
EXTRACT(DAY FROM date) AS day_of_month,
EXTRACT(WEEK FROM date) AS week_of_year,
channelGrouping, deviceCategory, sessions, conversions,
FROM (
SELECT * REPLACE(PARSE_DATE('%Y%m%d', CAST(date AS STRING)) AS date)
FROM `project.dataset.table`
)
推荐阅读
- ionic4 - 如何安装 Ionic 媒体插件?
- .htaccess - 重定向规则在我的 .htaccess 中不起作用
- batch-file - 如何修复我的批处理文件以打开相应的程序?
- python-3.x - python3 UnicodeError:使用“idna”编解码器编码失败(UnicodeError:标签为空或太长)
- c - 如何将变量移交给 *char 函数?
- python - SDN Pox 控制器:ARP_TYPE、IP_TYPE,但没有 ICMP_TYPE
- angular - 如何从加载角度应用程序的根 URL 拦截 HTTP 请求标头
- r - 错误:必须提供符号或字符串作为参数
- android - 在 Xamarin.Forms 应用程序上使用 android NFC 意图启动 android 活动
- php - 如何在下拉列表中显示 sql 表(php、html)