2017-08-03 37 views
1

是否可以在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); 

我所試圖做的事:

  • 我願做一個更新查詢一切(選擇NOW(),然後格式化它並將其設置爲新值)
  • 我需要使用函數NOW()沒有時間戳
  • 我需要保存的時間格式,而不時區( 'YMD H:I:S')
+0

因此,要確保,所有要do獲取當前時間並在'Ymd H:i:s'表單中更新my_time? – MinistryofChaps

+0

是的,就是這樣:) – tomc

回答

2

使用在您的更新ST atement

UPDATE my_table SET my_time = NOW() 

您不必先前提取日期。你可以直接在你的update語句中使用這個MySQL函數。

如果Web服務器和MySQL服務器,你也可以做這樣的在同一臺服務器上,如果MySQL格式是不是你最喜歡的:

'UPDATE my_table SET my_time = '. date("Y-m-d H:i:s", time()); 

只需設置要正確的時區。

+0

但不會被格式化,因爲他想成爲 – Edwin

+0

是的,我需要它被格式化 – tomc

+0

當然,請閱讀這篇文章:https://www.w3schools.com/sql/func_mysql_now.asp – yfain

相關問題