我有一個城市的普通運輸規格數據的數據庫,定義在午夜後的運輸服務小時> 24.因此,在stop_times表中,我們有很多次,例如定義爲25:00:00和26:00:00等。因爲我需要對這個數據庫的一部分執行時間減法,所以我想寫一個用戶定義的python腳本來處理這個腳本,並使用python create_function sqlite命令將其與我的數據庫相關聯。Python腳本的Sqlite時間減法午夜後
出於某種原因,當我運行查詢我在心中對這個數據集,我得到
sqlite3.OperationalError: user-defined function raised exception
這裏是時間的減法運算的功能,我寫在午夜後處理時間。我相信這是一團糟。如果您有關於如何更有效地處理此問題的任何提示,我很樂意聽到這些。提前致謝。
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
在您的函數中記錄異常。 – 2013-03-28 08:19:16
在該函數中使用[try/except](http://docs.python.org/tutorial/errors.html)。 – 2013-03-28 14:25:11
sqlite運行這個函數時如何做到這一點?當我遍歷從SQL出來的未提取結果並自己調用函數時,沒有未捕獲的異常通過sys.excepthook記錄。 SQL如何運行語句時如何記錄它們? – 2013-03-28 14:25:41