【发布时间】:2014-08-12 21:54:59
【问题描述】:
我有一个表,其中包含指定用户的任务。
这些列是:
TASK_ID
TASK_NAME
TIME_FROM
TIME_TO
USER_id
我想创建一个报告,显示当天的任务,按开始时间排序。
但我不知道如何在不比较小时数的情况下将任务天数与sysdate 进行比较。我想显示当天所有时间的报告任务。我该怎么做?
【问题讨论】:
标签: sql oracle-apex
我有一个表,其中包含指定用户的任务。
这些列是:
TASK_ID
TASK_NAME
TIME_FROM
TIME_TO
USER_id
我想创建一个报告,显示当天的任务,按开始时间排序。
但我不知道如何在不比较小时数的情况下将任务天数与sysdate 进行比较。我想显示当天所有时间的报告任务。我该怎么做?
【问题讨论】:
标签: sql oracle-apex
假设“当天的任务”是指今天某个时间具有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
以便 Oracle 可以对 task_from 进行索引扫描。
【讨论】: