私は、真夜中以降の交通サービスを 24 時間以上と定義する都市の一般交通フィード仕様データのデータベースを持っています。など。このデータベースの一部で時間減算を実行する必要があるため、これを処理するユーザー定義の python スクリプトを作成し、python create_function sqlite コマンドを使用してそれをデータベースに関連付けることを考えました。
何らかの理由で、このデータセットに対して考えているクエリを実行すると、
sqlite3.OperationalError: user-defined function raised exception
これは、午前 0 時以降の時間を処理するために作成した時間減算関数です。私はそれが混乱していると確信しています。これをより効率的に処理するためのヒントがあれば、それも聞きたいです。前もって感謝します。
def time_delta(t1, t2):
old_arrival = t1.encode('utf-8').split(':')
old_departure = t2.encode('utf-8').split(':')
new_arrival_string = "2013-03-16 %s:%s:%s" % (int(old_arrival[0])-12, old_arrival[1], old_arrival[2])
new_arrival_format = "%Y-%m-%d %H:%M:%S"
arr = datetime.datetime.strptime(new_arrival_string, new_arrival_format)
new_departure_string = "2013-03-16 %s:%s:%s" % (int(old_departure[0])-12, old_departure[1], old_departure[2])
new_departure_format = "%Y-%m-%d %H:%M:%S"
dep = datetime.datetime.strptime(new_departure_string, new_departure_format)
difference = arr-dep
seconds = difference.seconds
if difference.days < 0:
difference = dep-arr
seconds = (-1) * difference.seconds
return seconds