2016-04-22 1 views
1


クエリ:
2014年11月17日午前3時00分00秒PM
2014年11月17日午前4時00分00秒PM

私は時間が午後3時であるすべてのレコード(私は30日を格納しました)を照会しようとしています。
OracleのタイムスタンプSQL私は、次の形式でデータベースにTIMESTAMP属性を格納している

 
Select * from DaysTb where timeOfday =to_date('11/17/2014 3:00:00 PM','mm/dd/yyyy hh12:00') 

しかし、私のクエリが正しくありません。グーグルは答えを見つけるのに役立たなかった。 私はいくつかの指針を感謝します。おかげさまで ここで

+0

タイムスタンプ属性がデータベースにSTRINGとして格納されていることを意味しますか?または真のTIMESTAMPデータ型として使用できますか?後者の場合(そしてそれが望めば)、それはあなたが表示するフォーマットには格納されません。これはタイムスタンプのフォーマットではなく文字列フォーマットです。また、あなたが午後3時に言うときは、正確に3:00:00、あるいは3:00〜3:59:59の間の時間を意味しますか?ところで、列のデータ型を調べるには、sqlplus(またはToadまたはSQL Developer)を使用する場合はDESCRIBE DAYSTBを試してください。 – mathguy

+0

データはTIMESTAMPとして保存されます。私の同僚の助けを借りて、私はHOURとExtractを使い、時間が3:00 PMに等しい1ヶ月以内にすべてのレコードを照会することができました。 – Chris

答えて

1

は正しいOracle SQL文は、それは、15:00時のスタンプを持つすべてのレコードを返します

 
select * from yourTableName where 
EXTRACT(HOUR FROM data_date) = 15; 

です。

関連する問題