python - Postgresql 和 Python : Selecting data (datetime) from SQL

标签 python postgresql

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

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是汽车注册的时间,数据库中的时间是注入(inject)的时间。

最佳答案

Prastovetas_Laikas = Pay_Time - Started_Parking 

不会工作

因为 Pay_Timedatetime.datetimeStarted_Parkingstr

您需要尝试使用datetime.strptime()Started_Parking 转换为正确的type

并且您想使用 str(mydate) 将它们作为 str 存储在您的 DB

关于python - Postgresql 和 Python : Selecting data (datetime) from SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57805616/

相关文章:

Python 正则表达式首先找到 '&'

python - 需要帮助来解决未命名问题并在 pandas 的数据框中更改它

python - opencv 中的 filter2D 真的能发挥作用吗?

postgresql - 我在 postgres 中使用 group by 时出错?

database - 使用加权 tsvector 进行 PostgreSQL 全文搜索的最佳索引

c - [C][Postgresql] PQfinish(conn) 上的段错误线程 2

python max() 函数在 pandas 列上使用时失败并且整数失败

python - 将字符串转换为原始字节

sql - postgresql中的条件插入语句

java - 使用 Spring Data JPA、Hibernate 和 PostgreSQL 从数据库打印一行