2017-01-12 4 views
0

stolperte ich über diesen S.O question, die erwähnt, dass ein Check-Constraint wie folgt geschrieben werden muss: CHECK (ts >= timestamp '2015-08-11 00:00:00' AND ts < timestamp '2015-08-12 00:00:00')Postgres: Differenz zwischen Zeitstempel ‚myTimestamp‘ und ‚myTimestamp‘ :: Timestamp

Ich persönlich meine Art Abgüsse schreibe so: CHECK (ts >= '2015-08-11 00:00:00'::timestamp AND ts < '2015-08-12 00:00:00'::timestamp)

Ist 'timestamp' ein Typ im ersten Beispiel? Sind beide Prüfungen äquivalent? Gibt es einen Leistungsunterschied zwischen den beiden?

+0

@a_horse_with_no_name Danke! Das macht mir sofort viel mehr Sinn. – Stanislasdrg

Antwort

1

Die erste Syntax: '2015-08-11 18:30:00' ist Standard-ANSI-SQL zum Schreiben eines Zeitstempel-Literals, dies wird auch für Datumsangaben verwendet: date '2015-08-11' oder nur ein Zeitwert: time '18:30:00'. Dies ist ein "konstanter" Wert, kein "Cast", ähnlich dem einfachen Schreiben von 'foobar' als Varchar-Konstante.

Die zweite Form ist eine Umwandlung von einem Textwert in einen Zeitstempel und ist Postgres-spezifisch.

Verwandte Themen