2016-09-07 5 views
1

私は1日だけレコードを選択したいというクエリがあります。 b/w '00:00:00〜'23:59:59'のように。例えばpostgresでクエリの時間を設定する方法

ユーザーデータを選択し、時間であれば(2016年6月27日10時40分)その後、私のクエリは次のようになります:私は、そのオプションを与える必要があり、HTMLページ上の要件ごとに

select * from users where logtime between ? and '2016-06-27 23:59:59' // logtime is a timestamp 

ユーザーは単一の日付と時刻を選択してから検索を送信できます。私はSQLクエリで、どのように私は終了日(任意の日付のユーザーが選択)と時間(常に23:59:59になる)を追加することができます混乱しています。 誰かが私に考えを与えることができます与えられた日付から日付を抽出し、時間(23:59:59)を追加し、datetimeを返すのを助けることができる任意のpostgres関数ですか?

答えて

1

タイムスタンプから日付を抽出するには、タイムスタンプをdateにキャストするだけです。私が正しくあなたの問題を理解するのであれば、あなたはする必要があることのようなもの:

select * from users where logtime::date='2016-06-27 10:40'::date; 

編集:あなたは本当に単純に異なるタイムスタンプとそれを組み合わせるために、日付を抽出したい場合は、タイムスタンプなどを操作することによって、それを行うことができます文字列、例えば:

SELECT ('2016-06-27 10:40'::date || ' 23:59:59')::timestamp; 
+0

もし私が間違っていないのなら、:: dateはユーザー入力値から2016-06-27を抽出するでしょうが?どのように私はこの日付を追加し、私のクエリの他の節で時間(23:59:59)を設定することができますか? –

+0

@ user526206私の編集を参照してください。 – redneb

+0

私はもう一度申し訳ありませんが、Where句の後に私のクエリが表示されたら:log20time to '2016-06-27 10:40' and '2016-06-27 23:59:59'。私は "between"と "''を使用して、クエリを書くときにこの割り当てがどのように機能するかを示します。 –

0

あなたがberween句を使用する場合は、この

select * from users where logtime between in_date::timestamp and 
    (in_date::date || ' 23:59:59')::timestamp; --in_date is input date from html page 

を試すことができますが、を参照することができます詳細およびタイムスタンプの操作については、

希望します。

関連する問題