我有一个由程序 (python) 创建的数据库。我必须更改包含时间值的列。该列在创建数据库时为空,我的程序要求用户提供一个用于 2 列的日期。第一个指定开始时间,第二个指定结束时间。结束时间比开始时间多 30 天。
这是我的问题:如何在我的代码中添加 30 天的开始时间?
我有一个由程序 (python) 创建的数据库。我必须更改包含时间值的列。该列在创建数据库时为空,我的程序要求用户提供一个用于 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 是一个时间戳列)