簡體   English   中英

從SQL / ORACLE中類型為date的列中提取日期

[英]Extract date from a column of type date in SQL/ORACLE

我有一個DATE類型的列。 如何將其與SYSDATE hours字段進行比較以執行某些操作?

列名稱: DateColumn類型為DATE

需求:
來自表的搜索條件,其中考慮了DateColumn的小時數,並應檢查它是否比SYSDATE小時數少10個小時

例如,如果DateColumn小時DateColumn15 ,而從SYSDATE的當前小時數為20 ,則由於時差小於10小時,則應滿足條件。

我需要這樣的東西:

 SELECT EMP_ID FROM EMPLOYEE WHERE SYSDATE(something to extract hours) - 
 DATECOLUMN(something to consider hours) < 10;

編輯:它也應該考慮天之間的差異。

就像DateColumn具有20-09-2017 15:00:000SYSDATE21-09-2017 20:00:000 ,它應該失敗,因為時差為29

SELECT EMP_ID FROM EMPLOYEE WHERE TO_NUMBER(TO_CHAR(sysdate,'HH24')) - TO_NUMBER(TO_CHAR(sysdate,'HH24')) < 10;

如果您需要考慮20:00僅是04:00之前的8小時,則可以使用:

SELECT *
FROM   employees
WHERE  ABS( MOD( ( SYSDATE - DateColumn ) * 24, 24 ) ) < 10;

如果還需要包括日期,則:

SELECT *
FROM   EMPLOYEES
WHERE  DateColumn BETWEEN SYSDATE - INTERVAL '10' HOUR
                      AND SYSDATE + INTERVAL '10' HOUR;

您可以使用extract

SELECT emp_id 
FROM   employee
WHERE  EXTRACT(HOUR FROM SYSDATE) - EXTRACT(HOUR FROM datecolumn) < 10;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM