oracle - Oracle - 日期 - 日期问题
问题描述
我正在尝试计算日期之间的差异。我只需要一天的小数点,所以日期 - 日期就是我所需要的。
我遇到的问题是,这适用于某些记录,但不适用于其他记录,没有真正的模式。使用以下:
select (case when c.call_answered_date is null then c.call_ended_date - c.call_entered_queue_date else 0 end),
C.CALL_ENTERED_SYSTEM_DATE, C.CALL_ENTERED_QUEUE_DATE, C.CALL_ENDED_DATE
我明白了
abd_wait call_entered_system_date call_entered_queue_date call_ended_date
-------- ------------------------ ----------------------- ---------------
5.78703703703704E-5 06/01/2020 12:30:00 06/01/2020 12:30:11 06/01/2020 12:30:16
0.000844907407407407 06/01/2020 12:35:38 06/01/2020 12:35:49 06/01/2020 12:37:02
所以第二行按预期工作,第一行没有。但我不知道为什么。
我需要它们都像第二行一样是一天的小数。
请帮忙。
解决方案
第一行具有正确的值,并且只是科学记数法:5.78703703703704E-5
与: 5 秒相同,0.0000578703703703704
表示为一天的一小部分:(16-11)/24/60/60
。该值仍然是一个(十进制)数字,只是以稍微不同的格式显示。
如果您希望它作为固定格式的十进制字符串,则使用TO_CHAR
为数字提供明确的格式:
select case
when c.call_answered_date is null
then TO_CHAR(
c.call_ended_date - c.call_entered_queue_date,
'0.000000000000000000'
)
else '0'
end,
C.CALL_ENTERED_SYSTEM_DATE,
C.CALL_ENTERED_QUEUE_DATE,
C.CALL_ENDED_DATE
FROM your_table c
推荐阅读
- amazon-web-services - AWS Amplify basicAuthCredentials 在 Lambda 中以编程方式格式化
- datastage - DataStage中如何识别和转换一系列数字?
- powershell - 尝试将 json 打印到单个文件时出现 Awk 语法错误
- python - Python:如何将 sys.argv 传递给 .py 文件列表?
- node.js - 为什么我不能在共享虚拟主机中从 package.json 运行 nodejs 应用程序?
- android - Android 房间数据库 - 批量插入不起作用
- javascript - 在图像问题上定位图形
- azure-devops - Azure DevOps - Yaml 管道将发布状态发布到工作项
- android - Android Studio:AVD选项给出错误“皮肤目录不指向有效皮肤”,但仅在编辑虚拟设备时
- google-cloud-platform - 为什么在 Cloud Monitoring API 中创建提醒政策时需要恢复政策?