Postgresql和Python:从SQL中选择数据(日期时间)。

1 人关注

我正在制作停车场系统,我在使用SQL数据库时遇到了一些困难。 我正在从SQL数据库中选择数据,但我需要正确地获得时间,以便用于进一步计算。例如,我需要得到插入数据库的时间为 VARCHAR ,也许糟糕的是我需要使用其他方法作为 TIME ,但事实并非如此。我需要的是使用这一行 Started_Parking = row [3] 。这应该从数据库中获取时间,之后,我应该能够看到从汽车注册时开始的时间差和当前时间。通过这样做,我应该能够计算出 "用户 "应该支付的停车费用。 因此,简而言之,我只需要以某种方式从数据库中获取时间,并使用它进行计算。这是我的代码,我在编译的时候也得到了错误。

从PostgreSQL中获取数据时出现错误,不支持操作数类型。 为 -: 'datetime.datetime' 和 'str' 。

connection = psycopg2.connect(user="postgres", password="Dziugas420", host="127.0.0.1", port="5432", database="postgres") cursor = connection.cursor() postgreSQL_select_Query = "select * from vartotojai WHERE carnum=('%s')" % car_numb cursor.execute(postgreSQL_select_Query) # PALEIST KOMANDA vartotoju_data = cursor.fetchall() # READ DATA print(" CAR DETAILS: ") for row in vartotoju_data: print("Current ID: ", row[0]) print("Car Number: ", row[1]) print("Parked on: ", row[3], "\n") Pay_Time = datetime.datetime.now() Started_Parking = row [3] Prastovetas_Laikas = Pay_Time - Started_Parking print(Prastovetas_Laikas) # NOW LET'S CHECK IF THE TIME DIFFERENCE IS WORKING, LET'S SEE THE DIFFERENCE AFTER 20SECS. time.sleep(20) Pay_Time2 = datetime.datetime.now() Prastovetas_Laikas2 = Pay_Time2 - Started_Parking print(Prastovetas_Laikas2)`

**EDIT

下面是我用来将这个时间导入数据库的代码。

Car_Reg_Time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
postgres_insert_query = """ INSERT INTO vartotojai (CARNUM, TIME, LAIKAS) VALUES (%s,%s, %s)"""
record_to_insert = (car_numb, Reg_Tikslus_Laikas, Car_Reg_Time)

这是我的数据库的表格。

数据库中的laikas是汽车注册的时间,数据库中的时间是注射的时间。

python
postgresql
DzITC
DzITC
发布于 2019-09-05
1 个回答
LinPy
LinPy
发布于 2019-09-05
已采纳
0 人赞同
Prastovetas_Laikas = Pay_Time - Started_Parking 

will not work