使用pyscopg2和PostgreSQL将datetime插入数据库

我无法使用pyscopg2插入语句将日期时间戳插入到sql数据库中。

下面的代码所做的每次按下按钮时,都应该在包含buildingID(仅为文本)以及按钮按下时的日期和时间的数据库中插入一行。

我只是不知道如何插入当前的日期和时间。

# Inserts data into local database
def insertLocalDB():
    # Open a cursor to perform database operations
    cur = conn.cursor()
    cur.execute("INSERT INTO test_table (buildingID,datetime) VALUES(%s,%s)",
    ("01", datetime))  #HAS TO BE CURRENT DATE AND TIME
    # Make the changes to the database persistant
    conn.commit()
    # Close communication with the database
    cur.close()

虽然您当然可以通过psycopg2将一个Python日期时间插入到一行中 - 但您需要创建一个设置为当前时间的datetime对象,可以像这样完成,也可以通过Delorean等模块完成 - 因为您只需要当前时间,我会把它留给Postgres自己。

例如

def insertLocalDB():
    # Open a cursor to perform database operations
    cur = conn.cursor()
    cur.execute("INSERT INTO test_table (buildingID,datetime) VALUES(%s, now() )",
    ("01", ))
    # Make the changes to the database persistant
    conn.commit()
    # Close communication with the database
    cur.close()

now()将当前时间作为timestamp with time zone类型的timestamp with time zone返回,并且将在第一个%s被psycopg2(通过libpq)替换01之后在服务器端运行。

还要注意,args的元组必须有一个尾随逗号,因为它只有一个元素,否则它不会是实际的元组。

链接地址: http://www.djcxy.com/p/40919.html

上一篇: Inserting datetime into database using pyscopg2 and PostgreSQL

下一篇: Python get current time in right timezone