[英]Extract date from a column of type date in SQL/ORACLE
我有一個DATE
類型的列。 如何將其與SYSDATE
hours字段進行比較以執行某些操作?
列名稱: DateColumn
類型為DATE
需求:
來自表的搜索條件,其中考慮了DateColumn
的小時數,並應檢查它是否比SYSDATE
小時數少10個小時
例如,如果DateColumn
小時DateColumn
為15
,而從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:000
且SYSDATE
是21-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.