INSERT datetime变量INTO VALUES的语法是什么

时间:2012-01-21 19:31:16

标签: python sql

将SQL日期时间数据类型插入行的语法是什么? Python中的以下内容仅为timestamp变量提供NULL值。

timestamp = datetime.datetime.today()
print timestamp
query = "INSERT INTO table1 (name, class, time_update) VALUES('ONE','TWO',@timestamp)"
cursor.execute(query)

2 个答案:

答案 0 :(得分:2)

我确定这取决于您使用的数据库后端,但在SQLite中,您需要将参数作为查询的一部分发送( 参数化陈述就是全部:)

timestamp = datetime.datetime.today()
print timestamp
query = "INSERT INTO table1 (name, class, time_update) VALUES('ONE','TWO',?)"
cursor.execute(query, (timestamp,))

答案 1 :(得分:1)

这实际上取决于数据库。对于MySQL,根据this,您可以指定多种格式的时间戳/日期时间,主要基于ISO8601:'YYYY-MM-DD','YY-MM-DD','YYYYMMDD'和'YYMMDD' (没有分隔符)或者如果你想要更高的精度'YYYY-MM-DD HH:MM:SS'或'YY-MM-DD HH:MM:SS'('YYYYMMDDHHMMSS'或'YYMMDDHHMMSS')。

对于查询,你应该通过在查询字符串中指定占位符来进行参数设置(它更安全,也是一个非常好的习惯)。对于MySQL,您可以这样做:

query = "INSERT INTO table1 (name, class, time_update) VALUES('ONE','TWO',%s)"
cursor.execute(query, (timestamp,))

但占位符的语法各不相同(取决于db接口/驱动程序) - 请参阅DB / Python接口的文档。