sql - 从日期列中提取 year_month 以及 sql 表中的其他列

标签 sql datetime snowflake-cloud-data-platform extract

我有一个包含多个字段的 sql 表,包括(但不限于以下):member_id、visit_date(日期时间格式,例如:2016-01-01)、visit_yr_qtr(作为字符串,例如:2016_Q1)、purchase_item(ID number)和 item_price(美元)。

我想提取这些字段,但也包括 year_month(2016-1 月或 2016-01)作为输出中的新字段。这是我尝试做但没有成功的:

          select member_id, visit_date, visit_yr_qtr, purchase_item, item_price, 
          EXTRACT(year_month, visit_date)
          FROM <table name>

有人可以建议一种从输出的 visit_date 列中提取 year_month 的方法吗?

最佳答案

EXTRACT 的语法是

EXTRACT( <date_or_time_part> FROM <date_or_time_expr> )

并且在<date_or_time_part>之中是yearmonth

所以得到yearmonth你需要 2 个提取物。

CONCAT(EXTRACT(year FROM visit_date),'-', LPAD(EXTRACT(month FROM visit_date), 2, 0)) 

一个较短的方法是使用 TO_CHARformat .

TO_CHAR(visit_date,'YYYY-MM') 

关于sql - 从日期列中提取 year_month 以及 sql 表中的其他列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70778320/

相关文章:

javascript - 从忽略时区的 Unix 时间戳创建日期

postgresql - CSV 中引用的雪花空值破坏了 PostgreSQL 卸载

python - 为什么 Apache 服务器在 python 中使用 Snowflake Ingest 模块抛出语法错误

mysql - 一个 SQL 查询中的 IF、EXISTS 和 SELECT

sql - 按列分组并根据条件构建单个结果行

mysql - 如果在 MySQL 中为空,如何更新字段?

Javascript 在我的网站中显示日期和时间,使用 UTC 在 javascript 中考虑用户时区

sqlplus,以1列导出查询,并且是无序的

java - 如何将 Rome 日期格式 "Sun Jan 08 02:25:00 IST 2012"日期转换为sql日期

merge - Snowflake 是否可以自动合并?