我需要查找特定時間範圍內的行。Oracle SQL:where子句中的時間戳
select *
from TableA
where startdate >= '12-01-2012 21:24:00'
and startdate <= '12-01-2012 21:25:33'
即查找時間戳精度爲秒的行,我該如何實現?
我需要查找特定時間範圍內的行。Oracle SQL:where子句中的時間戳
select *
from TableA
where startdate >= '12-01-2012 21:24:00'
and startdate <= '12-01-2012 21:25:33'
即查找時間戳精度爲秒的行,我該如何實現?
您需要使用TO_TIMESTAMP()將字符串轉換到一個適當的時間戳值:
to_timestamp('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')
如果你的列是DATE
型(也支持秒),你需要使用TO_DATE(的)
to_date('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')
進入一個這個where條件使用以下方法:
select *
from TableA
where startdate >= to_timestamp('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')
and startdate <= to_timestamp('12-01-2012 21:25:33', 'dd-mm-yyyy hh24:mi:ss')
你永遠需要一個列的類型是'戳」
編輯糾正錯字
我得到一個錯誤:「ORA-01830:日期格式圖片在轉換整個輸入字符串之前結束」 這裏是我的查詢:「select * from TableA where To_Timestamp(startdate,'DD-MM-YYYY HH24: MI:SS')> To_Timestamp('12 -01-2012 21:24:00','DD-MM-YYYY HH24:MI:SS');「 – sid 2012-01-13 18:44:28
在字段中的值是「12-JAN-12 09.24.06.355000000 PM」及其在Oracle數據庫 – sid 2012-01-13 18:46:51
@ user1095057時間戳字段:你不不需要申請'TO_TIMESTAMP()'你的列,但您的輸入值。看我的編輯。 – 2012-01-13 19:06:41
什麼是你的表的模式的使用
to_timestamp()
? – simchona 2012-01-13 18:34:13如果在問題中使用查詢,會發生什麼情況? – 2012-01-13 18:36:12
有問題的字段是「TIMESTAMP」, – sid 2012-01-13 18:37:03