通过日期和时间通过Power BI筛选Oracle SQL的数据集

时间:2019-06-13 12:20:06

标签: sql powerbi

我在过滤日期和时间之前和之后两个小时的时间上遇到了麻烦。我尝试过:

SELECT * 
FROM 
   table
where
   date >= sysdate - 1
AND
   TO_DATE( Time, 'HH24:MI:SS' ) >= TO_DATE( sysdate, 'HH24:MI:SS' ) - 2  

但是我收到不一致的类型错误,这是我以为我正在使用TO_DATE()函数处理的错误,但我猜不是。

1 个答案:

答案 0 :(得分:2)

sysdate已经是一个日期(和时间),所以TO_DATE( sysdate, 'HH24:MI:SS' )毫无意义。

您没有为date中的timetable列提供数据类型,所以我假设它们都是varchar2(10)格式MM / DD / YYYY和HH24:MI:SS。

我还将继续更改示例表和列名,因为它们是在实际查询中使用的无效名称。

-- example data
with my_table as (select '06/13/2019' as date_column, '09:40:34' as time_column from dual)
-- your query
SELECT * 
FROM 
   my_table
where
   to_date(date_column || ' ' || time_column, 'MM/DD/YYYY HH24:MI:SS') >= sysdate - 2/24 

我在这里要做的是将日期和时间字符串组合为一个日期时间字符串,然后将其转换为Oracle date类型(实际上是日期+时间)。然后,我们将其与sysdate - 2/24进行比较,date_column表示要花费当前时间并减去一天的2/24秒,即2个小时。

对于此示例,您可能需要将示例数据time_columnint的值更改为过去2小时内的值,具体取决于您运行此数据的时间以及所处的时区。