oracle - 日期格式图片在 Oracle 中转换整个输入字符串之前结束
问题描述
我有一个带有 HEATID 和 HEATDEPARTURE_ACT 列的 PD_HEAT_DATA 表。HEATDEPARTURE 列的数据类型是 VARCHAR2,它保存格式为 2019-07-28 23:11:11,359 的时间戳。
我的要求是在今天早上 6 点和第二天早上 6 点之间从 PD_HEAT_DATA 表中检索记录。
样本数据:
HeatID HEATDEPARTURE_ACT
0001024002 2019-07-29 00:46:42,115
0001024003 2019-07-29 06:46:42,115
0001024004 2019-07-29 23:46:42,115
0001024003 2019-07-30 00:06:42,115
0001024004 2019-07-30 04:46:42,115
我尝试了以下代码,但没有给出预期的结果:
select heatid, HEATDEPARTURE_ACT from hd_heat_data where to_date(HEATDEPARTURE_ACT, 'YYYY-MM-DD HH24:MI:SS') >= trunc(sysdate
-1) + 6/24 and
to_date(HEATDEPARTURE_ACT, 'YYYY-MM-DD HH24:MI:SS') < trunc(sysdate) + 6/24
我尝试了以下代码,但没有给出预期的结果:
select heatid, HEATDEPARTURE_ACT from hd_heat_data where to_date(HEATDEPARTURE_ACT, 'YYYY-MM-DD HH24:MI:SS') >= trunc(sysdate
-1) + 6/24 and
to_date(HEATDEPARTURE_ACT, 'YYYY-MM-DD HH24:MI:SS') < trunc(sysdate) + 6/24
解决方案
您需要更改提供的格式TO_TIMESTAMP
为TO_TIMESTAMP(HEATDEPARTURE_ACT, 'YYYY-MM-DD HH24:MI:SS,FF')
SELECT
HEATID,
HEATDEPARTURE_ACT
FROM
HD_HEAT_DATA
WHERE
TO_TIMESTAMP(HEATDEPARTURE_ACT, 'YYYY-MM-DD HH24:MI:SS,FF')
BETWEEN TRUNC(SYSDATE - 1) + INTERVAL '6' HOUR AND TRUNC(SYSDATE) +
INTERVAL '6' HOUR - INTERVAL '1' SECOND
请参阅此处的问题和解决方案再现演示
干杯!!
推荐阅读
- debezium - Debezium tableChanges 为空
- python - pyTelegramBotAPI 是否有另一种将标记宽度添加到按钮列表的方法?
- maven - Gradle 无法识别本地 Maven 存储库
- c# - 带有 LiveCharts 的 WPF 工具包 BusyIndicator - 指标与图表重叠
- javascript - Apollo MockedProvider 总是返回未定义的数据字段,即使在加载后也是如此
- laravel - 如何为合并单元格获取相同的值?laravel 导入
- css - Angular Boostrap 导航栏元素在移动视图中重叠
- amazon-web-services - 通过 CFN 模板启动 EC2 队列后,在 EC2 仪表板上看不到正在运行的实例
- php - PHP sql重新加载不改变页面内容
- html - XMLHttpRequest 在按钮单击时不起作用