sql - 如何在sql中比较2个转换日期
问题描述
我试图在我的查询中排除在同一个月开始的两列之间的结果。例如,我需要排除与福利2 同月开始的福利1。benefit1_start_date 和 benefit2_start_date 的格式为:YYYYMMDD。
这是我到目前为止所拥有的:
where (benefit1_start_date = (to_char(sysdate, 'YYYYMM') || '0122')) <>
(benefit2_start_date = (to_char(sysdate, 'YYYYMM') || '0122'));
如果有人能把我引向正确的方向,我将不胜感激!
解决方案
将您的数字日期转换为文本,然后比较年份和月份子字符串:
WHERE
SUBSTR(TO_CHAR(benefits1_start_date), 1, 6) <> SUBSTR(TO_CHAR(benefits2_start_date), 1, 6)
请注意,将您的日期存储为这样的数字是非典型的,您可能需要考虑将它们存储为日期。如果您没有一天组件,您可以只使用第一个作为占位符。
推荐阅读
- javascript - 我如何返回承诺结果
- html - 如何通过html中的给定图像创建多行和列,仅css
- r - R中的Beanplot负值和正值
- python - 在 GraalVM 中运行 Python - 不允许操作:在 org.graalvm.truffle/com.oracle.truffle.polyglot.FileSystems.forbidden(FileSystems.java:1345)
- python - 试图移除屏幕的对象
- git - 是否可以通过 git-credential-manager-core.exe 访问 github.com?如何实施?
- reactjs - 错误:不变量失败:您不应该在外部使用
当我尝试使用 localhost 测试我的应用程序时 - azure-data-factory - Azure 数据流通用管理框架
- html - 下拉菜单箭头无法正常工作
- kubernetes - 未知标志:Kubectl 中的 --export