我正在嘗試在Oracle SQL Developer中構建一個查詢,該查詢將返回不在營業時間內(08:00 am-5:00PM)的小時數以清除它。 該列名爲auction_time。問題在於表格包含200萬行和諸如'9:45 am','9 am','11:00:00','23:00'等幾種格式。 我已經嘗試過類似的,但它也返回其他類型的結果 select * from all_foreclosures where '17%'和'24%'之間的auction_time; 你能幫忙嗎?如何查找無效時間
Q
如何查找無效時間
0
A
回答
0
您可以使用CASE
語句和多個正則表達式匹配不同的格式(你需要找出所有不同的格式):
SELECT *
FROM (
SELECT t.*,
(CASE
WHEN REGEXP_LIKE(auction_time, '^\s*(0?[1-9]|1[0-2])\s*[ap]m\s*$', 'i')
THEN TO_DATE(auction_time, 'HH12AM')
WHEN REGEXP_LIKE(auction_time, '^\s*(0?[1-9]|1[0-2]):[0-5]?\d\s*[ap]m\s*$','i')
THEN TO_DATE(auction_time, 'HH12:MIAM')
WHEN REGEXP_LIKE(auction_time, '^\s*([01]?\d|2[0-3]):[0-5]?\d\s*$')
THEN TO_DATE(auction_time, 'HH24:MI')
WHEN REGEXP_LIKE(auction_time, '^\s*([01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d\s*$')
THEN TO_DATE(auction_time, 'HH24:MI:SS')
END
- TRUNC(SYSDATE, 'Y')
) * 24 AS Hours
FROM your_table t
)
WHERE hours < 8 OR hours > 17
+0
謝謝,上面的查詢是一個非常好的開始。 – Nucu
相關問題
- 1. A *查找路徑無效
- 2. 如何在T-SQL中查找時間
- 3. 如何查找CPU和IO時間?
- 4. 如何有效地查詢兩個表之間的查找表?
- 5. Delphi TFileStream.Seek,如何檢查無效查找偏移量
- 6. 查找TEO時間
- 7. 查找時間差
- 8. FireFox無效日期時間
- 9. 時間間隔在交易查看圖表中無效
- 10. 如何在給定時間時查找時差
- 11. 如何查找從nginx返回的無效內容類型?
- 12. 如何在Vertica DB中查找無效的日期記錄?
- 13. MongDb如何查找包含無效數據的元素
- 14. 如何在php中查找兩個時間值的中間值?
- 15. 有效測量dns查找和網站內容下載時間
- 16. PostgreSQL - 查找無效的文本值JSON
- 17. Spring Roo生成無效查找器?
- 18. PHP數組查找時間
- 19. 查找持續時間
- 20. 在Python中查找時間
- 21. 查找兩個時間戳
- 22. 查找時間差異
- 23. 查找平均時間
- 24. 查找已用時間
- 25. Glassfish的慢「查找」時間
- 26. TSQL查找重疊時間
- 27. Python - 查找時間槽
- 28. 如何查找上次在oracle中查詢表的時間
- 29. 如何查找花費大量時間的SQL Server查詢?
- 30. 如何查找日期和時間夏時制開始
什麼是該領域的佈局? nvarchar,datetime,varchar,...? – Svekke
VARCHAR2(16 BYTE) – Nucu
不幸的是,這聽起來像是幾乎不可能做到的事情,因爲在列本身沒有直接的格式。 – Svekke