[解決済み】Postgresqlでdatetimeフィールドの日付を比較する方法は?
2022-04-07 16:45:22
質問
Postgresql(バージョン9.2.4、Windows)で日付を比較する際に、奇妙なシナリオに直面しました。
私のテーブルには update_date というカラムがあり、タイプは 'timestamp without timezone' です。
クライアントは、このフィールドに対して、日付のみ(例:2013-05-03)または日付と時間(例:2013-05-03 12:20:00)を検索することができます。
このカラムは、現在すべての行でタイムスタンプとしての値を持ち、日付部分は同じ(2013-05-03)ですが、時間部分が異なります。
このカラムで比較すると、異なる結果が得られます。以下のような感じです。
select * from table where update_date >= '2013-05-03' AND update_date <= '2013-05-03' -> No results
select * from table where update_date >= '2013-05-03' AND update_date < '2013-05-03' -> No results
select * from table where update_date >= '2013-05-03' AND update_date <= '2013-05-04' -> results found
select * from table where update_date >= '2013-05-03' -> results found
私の質問は、どうすれば最初のクエリで結果を得られるようにできるかということです。つまり、なぜ3番目のクエリは機能しているのに、最初のクエリは機能していないのでしょうか?
どうすればいいですか?
キャスティングについては@Nicolaiの言うとおりで、どのようなデータに対しても条件がfalseになるのは、入力文字列に対する日付操作を避けたいからではないでしょうか? 恐れる必要はありません。
SELECT *
FROM table
WHERE update_date >= '2013-05-03'::date
AND update_date < ('2013-05-03'::date + '1 day'::interval);
関連
-
[解決済み】一括読み込みデータ変換エラー(切り捨て)
-
[解決済み] ORA-00918: 列があいまいに定義されています」を解決する方法
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] JavaScriptの日付の書式設定方法
-
[解決済み] JavaScriptで2つの日付を比較する
-
[解決済み] PostgreSQLの場合。PostgreSQLのテーブルを表示する
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Excelに合体的な関数はありますか?
-
[解決済み] varchar 値 'simple, ' をデータ型 int に変換する際に変換に失敗しました。
-
[解決済み] テスト
-
[解決済み】SQL Server サブクエリが1つ以上の値を返しました。サブクエリが =, !=, <, <= , >, >= に続く場合、これは許可されません。
-
[解決済み】SQL Serverは「集約関数やサブクエリを含む式に対して集約関数を実行できない」が、Sybaseはできる。
-
[解決済み] SQLクエリ「00904. 00000 - "%s: 無効な識別子".
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] "このSqlTransactionは完了しました。もう使用できません。"...設定エラー?
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しません。
-
[解決済み] 時間を時間単位や10分単位でグループ化する方法