8

次のように、タイムスタンプに基づいてデータを取得する単純なクエリを実行しようとしています。

SELECT * 
FROM <table_name> 
WHERE id = 1 
AND usagetime = timestamp('2012-09-03 08:03:06') 
WITH UR;

これは私にレコードを返さないようですが、このレコードはid=1のデータベースに存在します。

私はここで何が間違っているのですか?

列usagetimeのデータ型は正しく、タイムスタンプに設定されています。

4

2 に答える 2

23

@bhambyは正しいです。タイムスタンプ値からマイクロ秒を外すと、クエリは2012-09-03 08:03:06.000000の使用時間でのみ一致します。

前のクエリからキャプチャされた完全なタイムスタンプ値がない場合は、その時間の任意のマイクロ秒値に一致する範囲述語を指定できます。

...WHERE id = 1 AND usagetime BETWEEN '2012-09-03 08:03:06' AND '2012-09-03 08:03:07'

また

...WHERE id = 1 AND usagetime >= '2012-09-03 08:03:06' 
   AND usagetime < '2012-09-03 08:03:07'
于 2012-09-03T23:17:47.360 に答える