2017-03-23 8 views
-3

私はDB2に新しいですから、タイムスタンプとAMとPMフォーマットの間のクエリをdb2で実行する方法を教えてください。タイムスタンプクエリ間のdb2

は以下

ID NAME  TIMESTAMP 
== ====  ========= 
6 Xavier 02/02/2016 2:24:32 AM 
7 Paul  02/02/2016 2:46:53 PM 
8 Adam  02/02/2016 4:05:39 PM 
9 Newton 12/02/2016 5:29:46 PM 
10 Jack  14/02/2016 9:29:46 PM 

は、私はあなたが達成するために助けてください16:00

に1AMの間に2016年2月2日に名を選択するために、上記の表を使用するテーブルです。タイムスタンプのデータ型を想定し

+0

タイムスタンプ列のデータ型は? – GurV

+0

はタイムスタンプの列ですか? – Hogan

答えて

-1

はあなたが原因あなたのクライアントの設定に 'AM'/'PM' を見ることになるかもしれません

select * From your_table where timestamp between 
to_date('02/02/2016 01:00:00','DD/MM/YYYY HH24:MI:SS') 
and 
to_date('02/02/2016 16:00:00','DD/MM/YYYY HH24:MI:SS') 

を使用し、dateです。

+1

タイムスタンプ列が文字列の場合、これは機能しません。 – Hogan

+0

@Hogan - あなたは答えの最初の行を読んでいませんか? 'タイムスタンプのデータ型が日付であると仮定すると'。なぜ同じ情報を与えているのですか? – Utsav

+0

スタックオーバーフローに関する私の経験についてのすべてのことは、Askerがタイムスタンプ情報を文字列として保存していると思ったためです。実際、あなたの答えが正しいとマークされているにもかかわらず、私はまだそれが事実であると信じています。 – Hogan

1

タイムスタンプを比較する場合は、タイムスタンプタイプに変更する必要があります。あなたのデータは文字列です。文字列を変換しないと文字列は機能しません。たとえば、午後11時は、11時前に来るだろう

select * 
from your_table 
where timestamp(timestamp) between timestamp('02/02/2016 01:00:00') 
           and timestamp('02/02/2016 16:00:00')