将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)
答案 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接口的文档。