Postgresql和Python:从SQL中选择数据(datetime)

2024-10-01 11:32:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做停车场系统,我有一些困难与SQL数据库。 我正在从SQL数据库中选择数据,但我需要正确获取时间,以便使用它进行进一步计算。例如,我需要得到作为VARCHAR插入数据库的时间,也许不好的是我需要使用其他方法作为TIME,但事实并非如此。我需要的是使用这行Started_Parking = row [3]。这应该得到的时间从数据库和之后,我应该能够看到从开始时,汽车登记和当前时间的时间差。通过这样做,我应该能够计算出“用户”应支付的停车费总额。 所以简而言之,我只需要从数据库中获取时间,然后用它来计算。这是我的代码,编译时也会出错:

Error while fetching data from PostgreSQL unsupported operand type(s) for -: 'datetime.datetime' and 'str'

try:
 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)`

**编辑

下面是我这次用来导入数据库的代码:

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)

这是我的数据库表: DATABASE

哦!数据库中的laikas是car注册的时间,数据库中的time是注射的时间


Tags: 数据库datadatetimetime时间postgresselectcursor
1条回答
网友
1楼 · 发布于 2024-10-01 11:32:33
Prastovetas_Laikas = Pay_Time - Started_Parking 

不起作用

因为Pay_Timedatetime.datetimeStarted_Parkingstr

您需要尝试使用datetime.strptime()来转换Started_Parking以更正type

您想使用str(mydate)将它们存储为strDB

相关问题 更多 >