从iso周和年开始,我想得到一个日期。 日期应该是一周的第一天。 一周的第一天是星期一。 例如iso周10和iso年应转换为2019-03-04。 我正在使用雪花
答案 0 :(得分:0)
如果没有日期维度表和/或实用程序(如注释中所述),则应从文本形式进行解析。但这将取决于DBMS实现:
STR_TO_DATE(CONCAT(year, ' ', week), '%x %v')
TO_DATE(year || ' ' || week, 'IYYY IW')
答案 1 :(得分:0)
很遗憾,Snowflake本身不支持此功能。
虽然可以手动计算ISO周和年份中的日期,但这非常复杂。因此,就像其他建议一样,为此生成日期维度表要容易得多。
可以为查询生成查询的查询示例(请注意-这不是完整的“日期维度”表-通常每天一行,每周一行)。
OTSession
请注意,您可以使用this.sessionEventHandlers = {
streamCreated: event => {
const streamProperties = {
...this.state.streamProperties, [event.streamId]: {
subscribeToAudio: true,
subscribeToVideo: true,
style: {
width: 400,
height: 300,
},
}
};
this.setState({streamProperties});
},
};
中的常量来创建所需范围的表。只需记住将星期一作为开始日期,否则表中第一周的值会错误:)
答案 2 :(得分:0)
执行此操作的日期表达式有点复杂,但并非不可能:
SELECT
DATEADD( /* Calculate start of ISOWeek as offset from Jan 1st */
DAY,
WEEK * 7 - CASE WHEN DAYOFWEEKISO(DATE_FROM_PARTS(YEAR, 1, 1)) < 5 THEN 7 ELSE 0 END
+ 1 - DAYOFWEEKISO(DATE_FROM_PARTS(YEAR, 1, 1)),
DATE_FROM_PARTS(YEAR, 1, 1)
)
FROM (VALUES (2000, 1), (2000, 2), (2001, 1), (2002, 1), (2003, 1)) v(YEAR, WEEK);