我有一个包含指定用户任务的表。
列是:
TASK_ID
TASK_NAME
TIME_FROM
TIME_TO
USER_id
我想创建一个报告,显示当天的任务,按开始时间排序。
但我不知道如何在不比较小时数的情况下将任务天数与sysdate
进行比较。我想展示当天所有时段的支持任务。我怎么能这样做?
答案 0 :(得分:0)
假设"当天的任务"表示今天time_from
时间time_from
且time_to
和date
都是SELECT *
FROM your_table
WHERE trunc(task_from) = trunc(sysdate)
ORDER BY task_from
数据类型的任务
trunc( <<date>> )
<<date>>
在午夜返回trunc(sysdate)
。因此trunc(task_from)
今天午夜返回。对于任何日期组件为今天的日期,trunc(sysdate)
将等于trunc(task_from)
,无论时间如何。
从性能角度来看,task_from
上基于函数的索引可能会有所帮助。
或者,如果SELECT *
FROM your_table
WHERE task_from >= trunc(sysdate)
AND task_from < trunc(sysdate+1)
ORDER BY task_from
被编入索引,则可能对此有用
task_from
以便Oracle可以对{{1}}进行索引扫描。