[解決済み] SQLです。タイムスタンプの日付から1日分を差し引く
質問
Datagrip for Postgresqlを使用しています。 タイムスタンプ形式の日付フィールドを持つテーブルがあります。
(ex: 2016-11-01 00:00:00)
. 私はできるようにしたい。
- 1日分を差し引く数学演算子を適用する
- 今日から130日までのタイムウィンドウをベースにフィルタリングする
- スタンプのhh/mm/ssの部分を除いて表示する(2016-10-31)
現在の開始クエリ。
select org_id, count(accounts) as count, ((date_at) - 1) as dateat
from sourcetable
where date_at <= now() - 130
group by org_id, dateat
は
((date_at)-1)
の句の結果は、1行目の
42883] ERROR: operator does not exist: timestamp without time zone - [42883] ERROR: オペレーターは存在しません。 整数 ヒント:指定された名前と引数の型に一致する演算子はありません。 明示的な型キャストを追加する必要があるかもしれません。位置 69
は
now()
節でも同様のメッセージが表示されます。
42883] ERROR: operator does not exist: timestamp with time zone - [42883] ERROR: operator does not exist: タイムスタンプが存在しない。 整数 ヒント:指定された名前と引数の型に一致する演算子はありません。 明示的な型キャストを追加する必要があるかもしれません。位置: ...
型キャストのオンラインガイドは役に立たないものばかりです。ご意見をお聞かせください。
どのように解決するのですか?
を使用します。
INTERVAL
の型をそれに追加します。例
--yesterday
SELECT NOW() - INTERVAL '1 DAY';
--Unrelated: PostgreSQL also supports some interesting shortcuts:
SELECT
'yesterday'::TIMESTAMP,
'tomorrow'::TIMESTAMP,
'allballs'::TIME AS aka_midnight;
すると、次のようになります。
SELECT
org_id,
count(accounts) AS COUNT,
((date_at) - INTERVAL '1 DAY') AS dateat
FROM
sourcetable
WHERE
date_at <= now() - INTERVAL '130 DAYS'
GROUP BY
org_id,
dateat;
TIPS
ヒント1
複数のオペランドをアペンドすることができます。 例:当月末日を取得するには?
SELECT date_trunc('MONTH', CURRENT_DATE) + INTERVAL '1 MONTH - 1 DAY';
ヒント2
を使用して間隔を作成することもできます。
make_interval
これは、実行時に作成する必要がある場合に便利です(リテラルを使用しない)。
SELECT make_interval(days => 10 + 2);
SELECT make_interval(days => 1, hours => 2);
SELECT make_interval(0, 1, 0, 5, 0, 0, 0.0);
詳細はこちら
関連
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] JavaScriptの日付の書式設定方法
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] 日付から日を引くには?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テーブルのFROM句の項目がない [終了しました] 。
-
[解決済み】SQLクエリ「00904. 00000 - "%s: 無効な識別子"
-
[解決済み】参照するテーブルにプライマリーキーやキャンディデートキーがない
-
[解決済み】Athena: スケールファクターでリソースを使い果たすクエリ
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] SQL Server - INNER JOIN WITH DISTINCT
-
[解決済み] SQLでchar値をmoneyに変換できない
-
[解決済み] マルチパート識別子をバインドできなかった
-
[解決済み] SQLiteでどのようにピボットするか、つまり、長い形式で保存されたテーブルを広い形式で選択するか?
-
[解決済み] SQLで複数のGROUP BYを使用する場合とは?