Web2py:插入日期时间的服务器概念

Web2py: insert server concept of datetime

如何让 web2py 将数据库服务器理解的当前时间插入日期时间字段。如果我简单地使用 datetime.now() 它将插入客户端时间。在 mySQL 中,我会使用 "NOW()" 来获取服务器时间:是否有 DAL 快捷方式?

它用于在 update_or_insert() 语句中使用,如果有任何区别的话。

我认为您不能直接将 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逻辑和上面的逻辑一样。