MySQL を使用したアプリケーションがあります。過去 24 時間の記録を伸ばしたという報告がありました。私はクエリを使用しました:
WHERE (DATE_SUB(CURDATE(), INTERVAL 1 DAY) <= FROM_UNIXTIME(`workorder`.`CREATEDTIME` / 1000))
現在、PostgreSQL を使用する必要があり、過去 24 時間のレポートを作成する方法がわかりません。どなたかお助けいただけませんか?
MySQL を使用したアプリケーションがあります。過去 24 時間の記録を伸ばしたという報告がありました。私はクエリを使用しました:
WHERE (DATE_SUB(CURDATE(), INTERVAL 1 DAY) <= FROM_UNIXTIME(`workorder`.`CREATEDTIME` / 1000))
現在、PostgreSQL を使用する必要があり、過去 24 時間のレポートを作成する方法がわかりません。どなたかお助けいただけませんか?
WHERE workorder.createdtime > current_date - 1 -- Yesterday and today
WHERE workorder.createdtime > current_timestamp - interval '1 day' -- last 24hr
> TIMESTAMP 'yesterday'
便宜上、Postgres には特別な日付/時刻入力としていくつかのハードコードされた値が含まれています。それらには以下が含まれます:
yesterday
today
tomorrow
now
試してみてくださいSELECT TIMESTAMP 'now'
。
たとえば、ここにクエリがあります。
SELECT when_row_created_
FROM customer_
WHERE when_row_created_ > TIMESTAMP 'yesterday'
ORDER BY when_row_created_ DESC
;
これらのコマンドは製品コードには適していないかもしれませんが、開発では確かに便利です。ドキュメントを読み、いくつかの練習をして、これらのコマンドの動作、セッションのタイム ゾーンがコマンドに与える影響などを確実に理解してください。
欠点には、(a) タイム ゾーンの重大な問題を暗黙のうちに無視すること、および (b) 標準 SQL ではないことが含まれます。
where workorder.createdtime >= now() - interval '24 hour'