DB2サーバーが理解している現在時刻をdatetimeフィールドに挿入するにはどうすればよいですか?単純にdatetime.now()を使用すると、クライアントの時刻が挿入されます。 mySQLでは、サーバーの時刻を取得するために「NOW()」を使用します。これに対してDALのショートカットはありますか?Web2py:日付時刻の挿入サーバーの概念
これは、違いがあれば、update_or_insert()ステートメントの内部で使用します。
DB2サーバーが理解している現在時刻をdatetimeフィールドに挿入するにはどうすればよいですか?単純にdatetime.now()を使用すると、クライアントの時刻が挿入されます。 mySQLでは、サーバーの時刻を取得するために「NOW()」を使用します。これに対してDALのショートカットはありますか?Web2py:日付時刻の挿入サーバーの概念
これは、違いがあれば、update_or_insert()ステートメントの内部で使用します。
DAL .insert
または.update_or_insert
メソッドにSQL関数を直接渡すことはできません。渡される値はすべて引用符で囲まれます。代わりに、.executesql()
メソッドを使用して、実行するSQLに渡す必要があります。あなたがSQLを生成する助けたい場合は、文字列を生成する._insert
メソッドを使用してから、「NOW()」関数の前後に引用符を削除することができます。もちろん
query = db.mytable._insert(mytime='NOW()').replace("'NOW()'", "NOW()")
db.executesql(query)
は、あなたがすることはできませんこの手法では.update_or_insert
メソッドを使用しますが、そのロジックは複雑ではないため、上記のロジックと同様に.update_or_insert
ロジックを処理するための独自のヘルパーを簡単に実装できます。
なぜ重要ですか?あなたのmySQLサーバーはweb2pyを実行しているサーバーとは異なるタイムゾーンにありますか?あなたは調整やUTC時間の使用はできませんか? – Anthony
私はそれがおそらくそうであるとは思うが、私は必ずしもそれが同じである(またはコンピュータが時間同期している)ことを保証することはできない。また、web2pyの外部からこのデータにアクセスしたり、別のマシンからこのデータを書き込んでいる可能性があります。この場合、web2pyが動作しているコンピュータではなく、DBサーバーの時間に頼るのが最も安全です。 – user2667066