presto - 从旧版本 Presto 中的日期开始的周开始日期
问题描述
我有一个有点直截了当的问题,我试图在 Presto 中找到给定日期的星期开始日期(星期日)。通常我会尝试
DATE_FORMAT(date(DateID),'%X%V') as WeekStartingDate,
但是我使用的 0.144 文档说它们目前不受支持。我在 MySQL 环境中使用的一种方法类似于
DATE_ADD(DateID, INTERVAL(1-DAYOFWEEK(DateID)) DAY)
但是 Presto 没有这个DAYOFWEEK
功能。我也试过做
concat( cast(year(DateID) as varchar) , cast(week(DateID) as varchar)) as WeekStartingDate,
但问题是数据没有正确排序。例如,我将在 202010 旁边获得 20201。有没有我没有想到的推荐解决方案?
解决方案
您也可以lpad
在第二次尝试中使用:
concat( cast(year(DateID) as varchar) , lpad(cast(week(DateID) as varchar),2,'0') ) as WeekStartingDate,
这最终会202001, 202002...., 202010, 202011, etc..
得到很好的排序。
推荐阅读
- .net - ASPNET_REGIIS -pef 与 -pe
- javascript - 来自另一个 js 文件的 JQuery 验证器调用函数
- python - 下面的代码向服务器发出多少请求?
- laravel - 在请求中使用验证更新问题
- python - discord.py TypeError:on_member_join()缺少1个必需的位置参数:'member'错误
- vue.js - 在自定义组件上使用 v-for,我可以访问组件内部的 ":key" 的值吗?
- api - WeatherStack 在 Flutter 中无法正常工作
- python - 从 JSON 文件中的字典列表返回值
- ios - iOS:带有 SO_REUSEPORT 的套接字不接收所有多播数据包
- java - Spring Boot 从 2.2.x 升级到 2.4.x:@Test 不再可以通过 application.properties 中的@activatedProperties@ 访问活动配置文件