2012-05-10 19 views
3

これは、TIMESTAMPタイプのフィールドを比較する簡単な方法ですか?n時間ですか? 私は日と時間に基づいて計算を行うことができますが、それはTIMESTAMPとSYSDATE

timestamp > SYSDATE - 1 

のようなものも可能であるが(SYSDATE - 1)限り理解し、昨日なので、タイムスタンプが最後の24以内である場合には、チェックします時間。

ありがとうございます。あなたは例えば、あまりにも非整数を加算/減算することができます

timestamp > to_timestamp(sysdate-1) 

答えて

11

最後のn時間以内にレコードを検索する必要がある場合は、現在の時間から時間間隔を減算します。 Oracleの場合、間隔の数は一重引用符で囲む必要があります。あなたが使用できる多くの間隔があります(時、分、秒、日、年、月)。

timestampfield > current_timestamp - interval '1' hour 
1

あなたがこれを行うことができます:

SELECT SYSDATE - 0.5 FROM dual; 

は、これまでの12時間を意味します。

3

+1

'TO_TIMESTAMP(SYSDATE-1)'常に時間部分を無視し、この点を確認してください。 'SYSDATEを選択、DUAL' – mkb

4

のように使用することができます(タイムスタンプとしてSYSDATE-1)

タイムスタンプ>キャスト

+0

HH FROM TO_TIMESTAMP(SYSDATE-1)は、12時間形式を意味し、これを試してみてください。 ALTERセッションの設定NLS_DATE_FORMAT = 'YYYY MM DD HH24:MI:SS' – Hali

+0

本当に、訂正していただきありがとうございます。 – aiGuru

+0

ハリは答えを編集してください。私はあなたに最高の投票を与えることができます。 – aiGuru