2017-08-03 11 views
1

をpostgresqlで単一クエリで実行することは可能ですか?私は必要な私は SELECT NOW()に単一クエリを実行してフォーマットし、UPDATE値

  • (それをフォーマットし、新しい値として設定します(NOW選択))1つの更新クエリですべてをしたいと思っ

    • 私がやろうとしています何
      $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()関数を使用するには( 'はYmd H:I:S')あなたの更新STで
  • +0

    を使用し、あなたがしたいすべての現在の時刻を取得し、 'Ymd H:i:s'フォームでmy_timeを更新しますか? – MinistryofChaps

    +0

    はい、それです:) – tomc

    答えて

    0

    あなたは、MySQL UPDATE my_table SET my_time = DATE_FORMAT(NOW(), "%Y-%m-%d H:%i:%s")のためにこれを使用するか、またはちょうどあなたがここにリストをチェック何が必要なフォーマットを使用することができます:postgresqlのUPDATE my_table SET my_time = to_char(now(), 'YYYY-MM-DD HH24:MI:SS')ためhttps://www.w3schools.com/sql/func_mysql_date_format.asp

    そして、これとそう確認するために、このhttps://www.postgresql.org/docs/9.1/static/functions-formatting.html

    +0

    それだけです!ありがとうございました :) – tomc

    2

    使用atement

    UPDATE my_table SET my_time = NOW() 
    

    以前に日付をフェッチする必要はありません。このMySQL関数は、更新ステートメントで直接使用できます。

    MySQLのフォーマットは、お気に入りでない場合は、Webサーバと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

    関連する問題