如何根据另一个日期列创建“周列”?
Posted
技术标签:
【中文标题】如何根据另一个日期列创建“周列”?【英文标题】:How to create 'Week column' based on another date column? 【发布时间】:2020-04-10 19:36:32 【问题描述】:我有“jobstarttimeiso”列,我想根据日期为一年中的第几周创建另一个列。我该怎么做呢?我正在使用 Redash 从 redshift 数据库中查询。请帮忙!谢谢
【问题讨论】:
您如何定义“一年中的第几周”?你的意思是“周数”,第一周是第 1 周,最后一周是第 52 周或第 53 周?你如何定义“第一周”——是整整一周,还是从特定的一天(例如周日或周一)开始?看看DATE_PART Function - Amazon Redshift。它具有“周”功能。 是的,我已经尝试过日期部分,但由于某种原因它不起作用。第 1 周 - 第 52 周 请定义“不起作用”。你收到错误了吗?或者你只是对结果不满意?结果与您寻求的结果有何不同? 抱歉 - 我收到了一个错误。 我在上面添加了一张图片作为使用date_part时的参考 【参考方案1】:extract 函数将返回一个星期数,例如
select extract(week from jobstarttimeiso) as weeknumber
一般:
EXTRACT ( datepart FROM TIMESTAMP 'literal' | timestamp )
见:https://docs.aws.amazon.com/redshift/latest/dg/r_EXTRACT_function.html
或者你也可以使用to_char()
TO_CHAR (timestamp_expression | numeric_expression , 'format')
使用参数IYYY
作为 ISO 8601 周编号年份的格式(4 位或更多位)
【讨论】:
以上是关于如何根据另一个日期列创建“周列”?的主要内容,如果未能解决你的问题,请参考以下文章