我在使用带有pyscopg2的insert语句将日期时间戳插入sql数据库时遇到了问题。
下面的代码是每次按下按钮时,它应该在包含buildingID(只是文本)的数据库中插入一行,以及按下按钮时的日期和时间。
我无法弄清楚如何插入当前日期和时间。
// Empire Builder.cpp : main project file.
#include "stdafx.h"
#include "MainMenu.h"
using namespace EmpireBuilder;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}
答案 0 :(得分:11)
虽然您当然 可以通过 psycopg2 将 Python 日期时间插入一行 - 但您需要创建一个datetime
对象设置为当前时间,可以like this或通过Delorean之类的模块完成 - 因为你只想要当前时间,我只想把它留给 Postgres 本身。
e.g。
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
类型返回,并在第一个%s
替换为 psycopg2 之后在服务器端运行(通过 libpq )01
。
另请注意,args的元组必须有一个逗号,因为它只有一个元素,否则它不会是一个真正的元组。