ポストgresにはかなり新しく、時間フィールドの値を現在の時間に設定しようとしています。ポストグレスで時間フィールドを現在の時間に設定
UPDATE table_name
SET updated_at = now(),
WHERE id = :id
私はこれをgolangと上記の構文エラーで実行しています。
updated_at時間フィールドに現在の時間を入力するにはどうすればよいですか?
ポストgresにはかなり新しく、時間フィールドの値を現在の時間に設定しようとしています。ポストグレスで時間フィールドを現在の時間に設定
UPDATE table_name
SET updated_at = now(),
WHERE id = :id
私はこれをgolangと上記の構文エラーで実行しています。
updated_at時間フィールドに現在の時間を入力するにはどうすればよいですか?
誰かが指摘したように、問題を引き起こしているのは,
です。 文字列を正しく形成することができ(下の例では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)
}
あなたは
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を参照してください。
ご希望の場合はご利用ください。
カンマを 'where'の前(または' now() 'の後)に削除します。 –
常に、**常に**正確なエラーテキストを表示します。 "構文エラー"はミステリーコードではありません。通常、エラーの原因と原因を教えてくれます。この場合、次のように出力されます。 'エラー:WHERE"または 'LINE 3:WHERE id = 1;"またはそれに近い構文エラーです。だから、その前後で、エラーの前後に目を通すことを知っている。 –