按日期时间范围选择数据的Oracle SQL查询是什么

fkaflof6  于 7个月前  发布在  Oracle
关注(0)|答案(2)|浏览(66)
SELECT *
FROM (table name)
WHERE project_name = '(Project name' 
  AND tool_name = 'x'
  AND result_type = 'Warning'
  AND UTC_END_TIME >= TO_DATE('2021-04-06 05:01:52', 'YYYY-MM-DD HH24:MI:SS')
  AND UTC_END_TIME <= TO_DATE('2021-04-08 05:15:44', 'YYYY-MM-DD HH24:MI:SS')

字符串
我尝试了这个查询来检索这个特定日期范围的数据,但无法找到确切的输出,但我得到了2021-02-30 05:00:31提到的日期的输出。

a8jjtwal

a8jjtwal1#

要解决此问题,可以尝试使用BETWEEN运算符在SQL查询中指定日期范围。

SELECT *
FROM table_name
WHERE project_name = '(Project name' 
  AND tool_name = 'x'
  AND result_type = 'Warning'
  AND UTC_END_TIME BETWEEN TO_DATE('2021-04-06 05:01:52', 'YYYY-MM-DD HH24:MI:SS')
                       AND TO_DATE('2021-04-08 05:15:44', 'YYYY-MM-DD HH24:MI:SS')

字符串
这里,BETWEEN运算符用于选择两个指定日期之间的记录。TO_DATE()函数用于将日期字符串转换为DATE数据类型,这是BETWEEN运算符正确工作所必需的。

a11xaf1n

a11xaf1n2#

UTC_END_TIME的数据类型是什么?它是否包含时区?在这种情况下,您可能需要根据客户端的时区进行时区转换。请尝试对查询运行解释计划:

explain plan for
SELECT *
FROM table_name
WHERE project_name = '(Project name' 
  AND tool_name = 'x'
  AND result_type = 'Warning'
  AND UTC_END_TIME BETWEEN TO_DATE('2021-04-06 05:01:52', 'YYYY-MM-DD HH24:MI:SS')
                       AND TO_DATE('2021-04-08 05:15:44', 'YYYY-MM-DD HH24:MI:SS')

字符串
然后运行

select * from table( dbms_xplan.display )


并查看 predicate 信息以寻找线索

相关问题