此问题已在此处有答案:
Oracle 10g select query by date returning no result(4个答案)
上个月关门了。
我想只选择今天的订单,但它的返回没有找到行,但有很多今天的订单
我使用Oracle SQL
我试过这个查询:
SELECT *
FROM LAB_RESULTS
WHERE LAB_RESULTS.SERV_REQUEST_DATE BETWEEN TO_DATE('23/08/2023', 'DD/MM/YYYY')
AND TO_DATE('23/08/2023', 'DD/MM/YYYY')
我也尝试了这个查询,但同样没有返回行:
SELECT *
FROM LAB_RESULTS
WHERE LAB_RESULTS.SERV_REQUEST_DATE >= TO_DATE('23/08/2023', 'DD/MM/YYYY')
AND LAB_RESULTS.SERV_REQUEST_DATE < TO_DATE('23/08/2023', 'DD/MM/YYYY')
输出总是:
没有返回的行
为什么今天没有返回订单需要按时间从00:00到23:59搜索?
我通过在QUERY中添加日期和时间来解决它
SELECT *
FROM LAB_RESULTS
WHERE LAB_RESULTS.SERV_REQUEST_DATE
BETWEEN TO_DATE('23/08/2023 00:00:00', 'DD/MM/YYYY HH24:MI:SS')
AND TO_DATE('23/08/2023 23:59:55', 'DD/MM/YYYY HH24:MI:SS')
2条答案
按热度按时间j5fpnvbx1#
这是因为您选择了
serv_request_date
**等于23.08.2023 00:00:00
的行(并且没有这样的行)。尝试
而不是.
另一个更容易编写的选项是
但是它不会在
serv_request_date
列上使用索引(如果它存在的话),所以性能可能会受到影响,除非你创建了一个基于函数的索引。vecaoik12#
您没有收到任何响应,因为查询没有返回行。我通常会先对行数进行计数,看看是否需要做什么,然后如果行数大于0,则运行查询。这样的事情
如果这是存储过程的一部分(或在代码中),则可以使用结果运行主查询