有一列“DateTime”,以“YYYY/MM/DD HH24:MI:SS”格式显示日期和时间。 我需要仅显示时间在特定范围内(凌晨 2 点 - 上午 6 点)的行,无论特定日期如何。 我有一个代码,仅显示特定日期的时间范围(凌晨 2 点 - 上午 6 点)。我需要显示过去 7 天内时间范围 2AM-6AM 的行。
SELECT *
FROM <table_name >
WHERE DateTime BETWEEN TO_DATE (
TO_CHAR (TRUNC (SYSDATE), 'DD-MM-YYYY')
|| ' '
|| '02:00:00',
'DD-MM-YYYY HH24:MI:SS')
AND TO_DATE (
TO_CHAR (TRUNC (SYSDATE), 'DD-MM-YYYY')
|| ' '
|| '06:00:00',
'DD-MM-YYYY HH24:MI:SS')
ORDER BY 1 DESC
最佳答案
SELECT *
FROM your_table
WHERE TO_CHAR( DateTime, 'HH24MMSS' ) BETWEEN '020000' AND '060000'
AND DateTime >= TRUNC( SYSDATE ) - INTERVAL '7' DAY
AND DateTime < TRUNC( SYSDATE ) + INTERVAL '1' DAY
或
SELECT *
FROM your_table
WHERE DateTime BETWEEN TRUNC( DateTime ) + INTERVAL '2' HOUR
AND TRUNC( DateTime ) + INTERVAL '6' HOUR
AND DateTime >= TRUNC( SYSDATE ) - INTERVAL '7' DAY
AND DateTime < TRUNC( SYSDATE ) + INTERVAL '1' DAY
关于sql - ORACLE SQL - 如何检查时间是否在特定范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43657907/