- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在我们的仓库中显示每周来自 Google Analytics 的用户数量。我每周通过我们的 ETL 接收原始数据,并以字符串形式接收 iso 周数据:GaIsoYearIsoWeek:'201951' 对应的用户编号为整数。为了进一步计算用户数量(例如计算每个用户的 session ),我需要日期格式的 iso 周的开始日期。我尝试过使用“to_date”函数和其他函数,但尝试从周数返回日期时会失败。提取年份有效,但提取星期无效。有人可以帮忙吗?谢谢!
最佳答案
据我了解,您想从年份/日期值获取开始日期。也许这会有所帮助:
SELECT SUBSTR( mydate, 1, 4) as target_year, SUBSTR( mydate, 5 ) as week,
IFF( SUBSTR( mydate, 5 ) = 1, to_date( SUBSTR( mydate, 1, 4), 'YYYY'),
dateadd( week, SUBSTR( mydate, 5 )-2, dateadd( day, 1, LAST_DAY(to_date( SUBSTR( mydate, 1, 4), 'YYYY'), week)))) AS firt_day_of_week
FROM VALUES ('20191'), ('20192'), ('201912'),('201951') t (mydate);
第一行只是显示解析的值,重要的部分是 IFF block 。它检查是否请求一年中的第一周,并返回一年中的第一天。如果我们不是在寻找第一周,它会根据一周的最后一天函数计算一周的第一天:)
这是上面的输出:
新:我不知道第一周有规则。如果 1 月 1 日是星期一、星期二、星期三或星期四,则位于 W01 中。所以我更新了查询:
SELECT SUBSTR( mydate, 1, 4) as target_year, SUBSTR( mydate, 5 ) as week,
IFF( (SUBSTR( mydate, 5 ) = 1 and DAYOFWEEK(to_date(target_year,'YYYY')) NOT IN (0,5,6) ), to_date(target_year,'YYYY'),
DATEADD( week, SUBSTR( mydate, 5 )-2 + IFF(DAYOFWEEK(to_date(target_year,'YYYY')) IN (0,5,6) ,1 , 0) ,
DATEADD( day, 1, LAST_DAY(TO_DATE( SUBSTR( mydate, 1, 4), 'YYYY'), week )))) AS firt_day_of_week
FROM VALUES ('202101'), ('202001'), ('201701'),('200301'), ('201951') t (mydate);
+-------------+------+------------------+
| TARGET_YEAR | WEEK | FIRT_DAY_OF_WEEK |
+-------------+------+------------------+
| 2021 | 01 | 2021-01-04 |
| 2020 | 01 | 2020-01-01 |
| 2017 | 01 | 2017-01-02 |
| 2003 | 01 | 2003-01-01 |
| 2019 | 51 | 2019-12-16 |
+-------------+------+------------------+
希望现在没问题,因为我没有正确测试它。
关于mysql - 从 IsoWeek 获取开始日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59453837/
我有一个 pandas 数据框,其中包含年和周列: year week 2018 18 2019 17 2019 17 我正在尝试使用 isoweek 将年份和周列合并
我想在我们的仓库中显示每周来自 Google Analytics 的用户数量。我每周通过我们的 ETL 接收原始数据,并以字符串形式接收 iso 周数据:GaIsoYearIsoWeek:'20195
python中的 isoweek.Week提供了一个week对象,允许进行简单的操作,例如 w = Week(2014,2) print w+200 isoweek.Week(2017, 45) 以及
我想根据日期间隔将单个任务的小时数“分配”或“拆分”为等周。但是我不知道如何在 Postgresql 中执行此操作。 CREATE TABLE task (id int4, start dat
下面的程序没有返回想要的值 package main import ( "fmt" "time" ) func main() { t:= time.Date(2011, 1,
我的应用程序依赖于 moment().startOf('isoWeek') 来确定当前一周的开始时间。在我的机器上,这工作正常并按预期返回 Mon Oct 31 2016 00:00:00 GMT-0
如果我从 isoweek - package 实例化一个“周” ,像这样: from isoweek import Week week = Week(2015,24) 然后 week 是一个 json
在我的模板中,我可以从我的商店中获取时间,并且效果很好。它会随着时间的变化而更新。但是当我像这样从状态映射 getter 时: computed: { ...mapGetters({ we
我使用 moment 的 isWeek 函数从日期中获取了 iso 周。 moment(new Date(2015,11,28)).isoWeek()//输出53 我使用 moment 的 isoWe
我是一名优秀的程序员,十分优秀!