我在做停车场系统,我有一些困难与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)
哦!数据库中的laikas是car注册的时间,数据库中的time是注射的时间
不起作用
因为
Pay_Time
是datetime.datetime
,Started_Parking
是str
您需要尝试使用
datetime.strptime()
来转换Started_Parking
以更正type
您想使用
str(mydate)
将它们存储为str
在DB
中相关问题 更多 >
编程相关推荐