プログラム (python) によって作成されたデータベースがあります。時間値を含む列を変更する必要があります。データベースの作成時に列が空で、私のプログラムは 2 つの列で使用される日付をユーザーに要求します。1 つ目は開始時刻を指定し、2 つ目は終了時刻を指定します。終了時刻が開始時刻より 30 日後です。
ここで私の問題:コードの開始時刻に30日を追加するにはどうすればよいですか?
プログラム (python) によって作成されたデータベースがあります。時間値を含む列を変更する必要があります。データベースの作成時に列が空で、私のプログラムは 2 つの列で使用される日付をユーザーに要求します。1 つ目は開始時刻を指定し、2 つ目は終了時刻を指定します。終了時刻が開始時刻より 30 日後です。
ここで私の問題:コードの開始時刻に30日を追加するにはどうすればよいですか?
Python にはdatetime.timedelta
、たとえば次のようなものがあります。
from datetime import datetime, timedelta
now = datetime.now()
nowand30 = now + timedelta(days=30)
SQL では、次のことができます。
DATE(some_date_val + 30 days)
また:
some_date_val + interval '30 days'
私はこれを試しませんでしたが、ドキュメントには次のように書かれています:
date '2001-09-28' + integer '7'
http://www.postgresql.org/docs/current/interactive/functions-datetime.html
単純に日付に 30 を追加します。
update the_table
set start_time = start_time + 30;
または、より明示的にしたい場合:
update the_table
set start_time = start_time + interval '30' day;
同じ方法で別のユニットを追加できます:
update the_table
set start_time = start_time + interval '30' minute;
(start_time がタイムスタンプ列であると仮定)