2016-08-11 3 views
0

ポストgresにはかなり新しく、時間フィールドの値を現在の時間に設定しようとしています。ポストグレスで時間フィールドを現在の時間に設定

UPDATE table_name 
SET updated_at = now(), 
WHERE id = :id 

私はこれをgolangと上記の構文エラーで実行しています。

updated_at時間フィールドに現在の時間を入力するにはどうすればよいですか?

+0

カンマを 'where'の前(または' now() 'の後)に削除します。 –

+0

常に、**常に**正確なエラーテキストを表示します。 "構文エラー"はミステリーコードではありません。通常、エラーの原因と原因を教えてくれます。この場合、次のように出力されます。 'エラー:WHERE"または 'LINE 3:WHERE id = 1;"またはそれに近い構文エラーです。だから、その前後で、エラーの前後に目を通すことを知っている。 –

答えて

0

誰かが指摘したように、問題を引き起こしているのは,です。 文字列を正しく形成することができ(下の例ではquery)、db APIに渡すことができます。

package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    name := "table_name" 
    id := "table_id" 
    query := fmt.Sprintf("UPDATE %s SET update_at = %q WHERE id = %s", name, time.Now(), id) 
} 
0

あなたは

You want to set the value of a time field as current time

を述べたようにあなたはこれを試すことができ、Now()は、現在のDateTimeを提供します。 Timeとしてキャストした後、我々はcurrenttime

UPDATE table_name 
SET updated_at = now()::TIME 
WHERE id = _id 

を得ることができる代わりに、あなたが

UPDATE table_name 
    SET updated_at = current_time --gives you current time with time zone 
    WHERE id = _id 

を試すことができ、より詳細 https://www.postgresql.org/docs/9.1/static/functions-datetime.htmlを参照してください。

ご希望の場合はご利用ください。

関連する問題