如何让web2py将DB服务器理解的当前时间插入到datetime字段中。如果我简单地使用datetime.now(),它将插入客户端时间。在mySQL中我会使用" NOW()"获取服务器时间:这是否有DAL快捷方式?
在update_or_insert()语句中使用它,如果这有任何区别。
答案 0 :(得分:1)
我认为您不能直接将SQL函数传递给DAL .insert
或.update_or_insert
方法,因为传递的任何值都将最终被引用。相反,您必须使用.executesql()
方法并将其传递给要执行的SQL。如果您需要生成SQL的帮助,可以使用._insert
方法生成字符串,然后删除" NOW()"周围的引号。功能:
query = db.mytable._insert(mytime='NOW()').replace("'NOW()'", "NOW()")
db.executesql(query)
当然,您无法使用此方法使用.update_or_insert
方法,但其逻辑并不复杂,因此您可以轻松实现自己的帮助程序来处理.update_or_insert
逻辑以及上述逻辑。