1. ホーム
  2. sql

[解決済み] Oracle SQL : where句のタイムスタンプ

2022-03-04 21:01:32

質問

特定の時間枠内の行を検索したいのですが。

select * 
from TableA 
where startdate >= '12-01-2012 21:24:00' 
  and startdate <= '12-01-2012 21:25:33'

例:タイムスタンプの精度がSECONDSの行を検索する必要があります。どうすれば実現できますか?

参考までに startdate カラムの型は TIMESTAMP .

解決方法は?

to_timestamp()

を使用する必要があります。 to_timestamp() に変換して、文字列を適切な timestamp の値を指定します。

to_timestamp('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')

to_date()

カラムの型が 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')

備考

を使用する必要はありません。 to_timestamp() 型のカラムで timestamp .