1

DB2SQLの使用

昨日の2時以降のレコードを照会したいのですが。クエリを実行する前に現在の日付を手動で入力する必要がない動的な式が必要です。created_datetime属性は、タイムスタンプデータタイプです。

例えば:

select record_key, other_stuff
from table
where created_datetime > "2 o'clock PM yesterday"

この種の動的タイムスタンプ比較も可能ですか?最終的には、複雑になる時間枠を作れるようになりたいです!

select count(1)
from table
where created_datetime between "2 o'clock PM yesterday" and "2 o'clock PM today"

私は現在の日付に精通していますが、それをどのように活用するかを概念化しようとしています。以下は私を近づけますが、クエリが実行される24時間前のすべてが含まれています。

select count(1)
from table
where created_datetime between (currentdate - 1 day) and (currentdate @ 2 o'clock PM)

私はこれがかなり基本的な領域であることを知っています、そして私はこの質問を投稿することに罪悪感を感じます、しかし私の研究は今のところ私にとって何も見つかりませんでした。私に代わって費やされた時間のすべてのオンスに感謝します。

4

2 に答える 2

1

これらを試してください

select record_key, other_stuff
from table
where created_datetime > CURRENT DATE - 10 HOURS

select count(1)
from table
where created_datetime between (CURRENT DATE - 10 HOURS) and (CURRENT DATE + 14 HOURS)

select count(1)
from table
where created_datetime between (CURRENT DATE - 1 DAYS) and (CURRENT DATE + 14 HOURS)

IBM Dev Worksライブラリーから:DB2の基本:日付と時刻を楽しむ

そこにはたくさんのサンプルがあります。

例えば

また、より適切な用語がないため、英語を使用して日付と時刻の計算を実行することもできます。

current date + 1 YEAR 
current date + 3 YEARS + 2 MONTHS + 15 DAYS 
current time + 5 HOURS - 3 MINUTES + 10 SECONDS 
于 2013-01-22T20:03:16.427 に答える
0

where句でこのタイムスタンプオプションを使用してこれを試してください。

以下のサンプルは、過去24時間の間にクエリを実行します。

select  
   timestamp(CURRENT date - 1 days,(CURRENT time - 24 hours)),
   timestamp(CURRENT date,CURRENT time ) 
FROM 
   sysibm.sysdummy1;
于 2020-07-20T22:16:52.407 に答える