Web2py:插入datetime的服务器概念

Web2py:插入datetime的服务器概念,datetime,web2py,Datetime,Web2py,如何让web2py将DB服务器理解的当前时间插入datetime字段中。如果我简单地使用datetime.now(),它将插入客户机时间。在mySQL中,我会使用“NOW()”获取服务器时间:是否有DAL快捷方式 它用于update\u或insert()语句内部,如果这有什么区别的话。我认为您不能直接将SQL函数传递给DAL.insert或方法,因为传递的任何值都将被引用。相反,您必须使用.executesql()方法并将要执行的SQL传递给它。如果需要帮助生成SQL,可以使用\u insert

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


它用于update\u或insert()语句内部,如果这有什么区别的话。

我认为您不能直接将SQL函数传递给DAL
.insert
方法,因为传递的任何值都将被引用。相反,您必须使用
.executesql()
方法并将要执行的SQL传递给它。如果需要帮助生成SQL,可以使用
\u insert
方法生成字符串,然后删除“NOW()”函数周围的引号:

query = db.mytable._insert(mytime='NOW()').replace("'NOW()'", "NOW()")
db.executesql(query)

当然,您无法使用此方法使用
.update\u或\u insert
方法,但其逻辑并不复杂,因此您可以轻松实现自己的助手来处理
.update\u或\u insert
逻辑以及上述逻辑。

为什么这很重要?您的mySQL服务器与运行web2py的服务器在不同的时区吗?你就不能调整一下或者使用UTC时间吗?我不能保证它是一样的(或者计算机是时间同步的),尽管我想可能是一样的。我还从web2py外部访问/写入这些数据,可能来自不同的机器,因此在这种情况下,依赖DB服务器时间,而不是运行web2py的计算机似乎是最安全的。