我想检查列creation_date中是否有日期和时间。我想在oracle sql查询中创建一个在下午4:00之前和上午8:00之后获取数据的查询。
创建日期的日期如12/03/2020 08:02:00 AM、12/05/2020 08:02:00 PM
SELECT *
FROM t1 IH
WHERE
to_char(IH.CREATION_DATE,'HH:MI:SS PM')>to_char('04:00:00 PM')发布于 2020-12-03 21:08:32
如果要在Oracle中检查时间,可以将其转换为字符串并进行比较:
select *
from t1
where to_char(creation_date, 'HH24:MI') >= '08:00' and
to_char(creation_date, 'HH24:MI') < '16:00';Oracle不支持time数据类型,所以字符串很方便。
另一种有效的方法是,因为您关心完整的小时数:
where extract(hour from creation_date) between 8 and 15这假设creation_date是一个时间表。或者您需要将其转换为:
where extract(hour from cast(creation_date as timestamp)) between 8 and 15发布于 2020-12-03 21:20:12
您可以使用计算date和拉取hours,如下所示:
select *
from your_table
where creation_date - trunc(creation date)* 24 between 8 and 16;https://stackoverflow.com/questions/65122651
复制相似问题