sql - 在oracle sql中减去时间
问题描述
我正在尝试根据案例条件从彼此中减去时间,但得到的错误是在预期数字字符的地方找到了非数字字符
这是代码
select
case
when to_date('01-JAN-2019 05:00 AM', 'HH:MI:SS AM') <
to_date('01-JAN-2019 05:00 PM', 'HH:MI:SS AM')
then round((to_date('01-JAN-2019 05:00 AM', 'HH:MI:SS AM') -
to_date('01-JAN-2019 09:00 AM', 'HH:MI:SS AM'))*24,2)
else 0
end late
from dual
解决方案
您必须匹配日期格式和格式掩码:
SQL> select
2 round(
3 (to_date('01-JAN-2019 05:00 AM', 'dd-mon-yyyy HH:MI AM') -
4 to_date('01-JAN-2019 09:00 AM', 'dd-mon-yyyy HH:MI AM')
5 ) * 24, 2) result
6 from dual;
RESULT
----------
-4
SQL>
推荐阅读
- sql - 如何用另一个存储过程执行一个存储过程?
- python - 配置解析器从ini文件中获取“单词列表”后如何将它们转换为变量
- python - TypeError:描述列表中的每个项目都必须是 AccessDescription
- ffmpeg - 如何合并这 2 个 FFmpeg 命令?
- c++ - 为什么调用析构函数后堆分配的对象仍然可以被引用?
- c++ - 多态性如何与 C++ 中的成员变量一起工作?
- elasticsearch - ElasticSearch 将 Rest 查询转换为传输客户端 Java 代码
- python - 使用 2 个 SQS 订阅向 SNS 主题发送消息,每个订阅都有一个 lambda 触发器导致空队列
- java - 查找两个矩阵之间的偏移量
- python - 将一行附加到熊猫数据框