sql - 在oracle sql中将一年中的一周转换为日期
问题描述
如何在 Oracle SQL 中使用一年中的星期来获取日期?
我需要搜索在本周开始之后创建的条目。目前,我通过做得到一年中的一周select to_char(sysdate,'WW') from dual;
,但后来我做不到
select * from table where date > to_date(to_char(sysdate,'WW'), 'WW')
因为我得到
ORA-01820: format code cannot appear in date input format
01820. 00000 - "format code cannot appear in date input format"
*Cause:
*Action:
解决方案
您不需要转换为字符串并返回,您可以使用截断:
select * from table where date > trunc(sysdate,'WW')
阅读有关该trunc()
功能以及如何应用格式模型的更多信息。
请注意,WW 给您的日期与一年中的第一天相同,所以现在这将给您 2020-09-02,即星期三 - 可能不是您所期望的。这当然取决于您的要求,但您可能希望与总是从星期一开始的 IW 合作,并会给出 2020-09-07。如果您有不同的开始日期,您可以增加或减少一天,例如,如果您的一周从星期日开始。
推荐阅读
- c++ - 如果给定一个命名捕获,如 [copy=val](){},C++ 将 lambda 浅复制 const Type& 吗?
- postman - 带有预请求脚本的邮递员:“错误:解析错误:标头溢出”
- ios - Swift 协议一致性问题
- reactjs - 超过 1 个实例时 React-Tabulator 组件崩溃
- javascript - 调用函数Angular 9后值不会分配给数组
- qt - 如何在 qml chartview 中使 x 轴位于 y = 0 上
- sql - 如何在 PostgresSQL 中提取数据?
- heatmap - 叶热图未正确着色
- php - Google Storage signedUploadUrl,获取上传网址返回:错误的内容类型。请使用多部分
- r - assign() 将数据帧转换为字符串?