Ich habe eine Tabelle, in der von unserer Website eingereichte Formulare gesammelt werden, aber aus irgendeinem Grund haben sie beim Erstellen der Tabelle keinen Zeitstempel in die Tabelle eingefügt. Ich möchte, dass das genaue Datum und die Uhrzeit der Eingabe des Datensatzes eingegeben werden.
Ich weiß, dass es irgendwo drin ist, aber ich kann anscheinend nicht herausfinden, wie der Standardwert festgelegt werden soll (wie in Access, den Sie verwenden getNow()
oder Now()
), aber ich weiß nicht, wo ich ihn ablegen soll.
sql-server
datetime
Stephmoreland
quelle
quelle
Antworten:
So ändern Sie eine vorhandene Spalte in einer vorhandenen Tabelle:
quelle
TheQ
Antwort von @steph - geht davon aus, dass Sie eine vorhandene Spalte ändern, was meiner Meinung nach nicht der Fall ist. In meiner Antwort finden Sie den Code zum Hinzufügen einer neuen Spalte mit dieser Standardeinschränkung.GETUTCDATE()
anstelle vonGETDATE()
Dies kann auch über die SSMS-GUI erfolgen.
(getdate())
in Standardwert oder Binding Feld wie unten abgebildetquelle
dateadd(minute, 10, GetDate())
zu sehen, ob das funktioniert.Geben Sie in dieser Tabelle in SQL Server den Standardwert dieser Spalte an
CURRENT_TIMESTAMP
. Der Datentyp dieser Spalte kann datetime oder datetime2 sein.z.B
quelle
CURRENT_TIMESTAMP
eindatetime
Wert in der lokalen Zeitzone des Computers zurückgegeben wird. Es sollte vermieden werden. Verwenden Sie stattdessen,SYSUTCDATETIME
was eindatetime2
in UTC zurückgibt .Während die markierte Antwort korrekt ist mit:
Sie sollten immer Zeitzonen kennen, wenn Sie einer Spalte Standardwerte für Datum und Uhrzeit hinzufügen.
Angenommen, dieser
datetime
Wert gibt an, wann ein Mitglied einer Website beigetreten ist undGETDATE()
ob er dem Benutzer wieder angezeigt werden soll. Dadurch wird Ihnen die Serverzeit angezeigt, sodass möglicherweise Unstimmigkeiten auftreten, wenn sich der Benutzer in einem anderen Gebietsschema als der Server befindet.Wenn Sie mit internationalen Nutzern zu tun erwarten, ist es in manchen Fällen besser zu nutzen GETUTCDATE () , wobei:
Beim Abrufen der Werte sollte die Front-End-Anwendung / Website diesen Wert von der UTC-Zeit in das Gebietsschema / die Kultur des Benutzers umwandeln, der ihn anfordert.
quelle
Lassen Sie Nullen in der Spalte nicht zu und legen Sie einen Standardwert für die Spalte von fest
getdate()
quelle
Die Syntax hierfür beim Erstellen einer neuen Tabelle lautet:
quelle
Das funktioniert bei mir ...
quelle
Dies funktioniert auch:
Oder:
quelle
Das hat bei mir funktioniert. Ich verwende SQL Developer mit Oracle DB:
quelle
Um es einfacher zu folgen, werde ich zusammenfassen , die oben genannten Antworten:
Nehmen wir an, die Tabelle heißt Kunde und hat 4 Spalten / weniger oder mehr ...
Sie möchten der Tabelle eine neue Spalte hinzufügen, in der jedes Mal, wenn eingefügt wird, in dieser Spalte der Zeitpunkt des Ereignisses aufgezeichnet wird.
Lösung:
Fügen Sie der Tabelle mit dem Datentyp datetime eine neue Spalte hinzu. Nehmen wir an, Timepurchase ist die neue Spalte .
Führen Sie dann die folgende Änderung aus:
quelle
Angenommen, Sie erstellen eine Datenbanktabelle für ein Registrierungssystem.
Jetzt registrieren sich ein paar Leute.
Dann stellen Sie fest, dass Sie einen Zeitstempel für die Registrierung benötigen.
Wenn diese App auf eine geografisch lokalisierte Region beschränkt ist, können Sie die lokale Serverzeit mit verwenden
GETDATE()
. Andernfalls sollten Sie Tanners Berücksichtigung für das globale Publikum mitGETUTCDATE()
dem Standardwert beachten .Fügen Sie die Spalte mit einem Standardwert in einer Anweisung wie dieser Antwort hinzu .
Lassen Sie uns einen anderen Registranten holen und sehen, wie die Daten aussehen.
quelle
In SQLPlus ist es beim Erstellen einer Tabelle wie folgt
SQL> Tabelle erstellen Test
SQL> Einfügen in Test (id) -Werte (1);
quelle