2016-08-11 4 views
0

Also ich bin ziemlich neu in Post Gres und versuche, den Wert eines Zeitfeldes auf die aktuelle Zeit einzustellen.Einstellen des Zeitfelds auf die aktuelle Zeit in Post Gres

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

Ich führe dies mit Golang und die oben genannten Syntaxfehler.

Wie gebe ich die aktuelle Uhrzeit in das Feld "updated_at time" ein?

+0

Entfernen Sie das Komma vor dem 'where' (oder nach dem' now() '). –

+0

Immer ** zeige immer den genauen Fehlertext. "Syntaxfehler" ist kein Mystery-Code. Es sagt Ihnen normalerweise, wo der Fehler ist und was falsch ist. In diesem Fall hätte es ausgegeben: 'ERROR: Syntaxfehler bei oder in der Nähe von" WHERE "' 'LINE 3: WHERE id = 1;'. Du weißt also, dass du dich kurz vor oder nach dem Fehler umsehen musst. –

Antwort

0

Wie von jemandem hingewiesen, haben Sie eine extra ,, die das Problem verursacht. Sie können die Zeichenfolge korrekt bilden (query im folgenden Beispiel) und an die db-API übergeben.

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

Wie Sie

erwähnt

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

Sie können dies versuchen, bietet Now() aktuelle Datetime. Nach wie Time Gießen können wir currenttime

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

Alternativ erhalten Sie

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

siehe https://www.postgresql.org/docs/9.1/static/functions-datetime.html um weitere Informationen versuchen.

Ich hoffe, es funktioniert für Sie.

Verwandte Themen