是否可以在postgresql中使用单个查询执行以下操作?
$stmt = $db->prepare('SELECT NOW()');
$data = $stmt->execute();
$currentTime = new DateTime($data['now']);
$currentTime = $currentTime->format('Y-m-d H:i:s');
$stmt = $db->prepare('UPDATE my_table SET my_time = :time');
$stmt->execute(array('time'=>$currentTime);
我想做什么:
答案 0 :(得分:2)
在更新声明中使用
UPDATE my_table SET my_time = NOW()
您之前不必提取日期。您可以在更新语句中直接使用此MySQL函数。
如果Web服务器和mysql服务器在同一台服务器上,你也可以这样做,如果mysql格式不是你最喜欢的那样:
'UPDATE my_table SET my_time = '. date("Y-m-d H:i:s", time());
只需设置您想要的正确时区即可。
答案 1 :(得分:0)
您可以将此用于MySQL UPDATE my_table SET my_time = DATE_FORMAT(NOW(), "%Y-%m-%d H:%i:%s")
,或者只使用您需要的任何格式查看此处的列表:https://www.w3schools.com/sql/func_mysql_date_format.asp
这适用于postgresql UPDATE my_table SET my_time = to_char(now(), 'YYYY-MM-DD HH24:MI:SS')
并使用此https://www.postgresql.org/docs/9.1/static/functions-formatting.html