我想更新oracle db中的update_date字段。
我有两种方法可以做到这一点。哪一个更好?
1. $ now = date('Y-m-d H:i:s');
2. $ now =“TO_CHAR(CURRENT_TIMESTAMP,'YYYY-MM-DD HH24:MI:SS')”;
答案 0 :(得分:1)
这取决于你是否要依赖php-server或oracle-server的时间。
答案 1 :(得分:1)
在版本#1上,PHP负责日期格式化。
在版本#2上,这是Oracle
如果Y-m-d H:i:s
等同于YYYY-MM-DD HH24:MI:SS
如果您总是设置当前日期,我会说您可以在数据库端执行此操作:它将至少保存一个连接。
$sql = 'UPDATE foo SET date = TO_CHAR(CURRENT_TIMESTAMP, "YYYY-MM-DD HH24:MI:SS")';
// VERSUS
$sql = 'UPDATE foo SET date = "' . date('Y-m-d H:i:s') . '"';
答案 2 :(得分:1)
在第二个解决方案(2)中,假设1)数据库引擎时间正确(正确的时区等),以及2)您永远使用Oracle(否则,SQL查询可能会更改)。< / p>
如果您使用php(1),那么您可以确保从代码中解决时间问题(执行时区检查等)。此外,即使您打开另一个数据库引擎,查询也不会改变。