366 Stimmen

Hinzufügen des Standardwerts des Datetime-Felds in SQL Server zu einem Zeitstempel

Ich habe eine Tabelle, die Formulare sammelt, die von unserer Website aus eingereicht wurden, aber aus irgendeinem Grund wurde bei der Erstellung der Tabelle kein Zeitstempel in die Tabelle eingefügt. Ich möchte, dass sie das genaue Datum und die genaue Uhrzeit der Eingabe des Datensatzes enthält.

Ich weiß, dass es irgendwo da drin steht, aber ich kann nicht herausfinden, wie man den Standardwert einstellt (wie in Access, man verwendet getNow() o Now() ), aber ich weiß nicht, wohin damit.

1voto

Jeff Puckett Punkte 32801

Angenommen, Sie erstellen eine Datenbanktabelle für ein Registrierungssystem.

IF OBJECT_ID('dbo.registration_demo', 'U') IS NOT NULL 
  DROP TABLE dbo.registration_demo; 

CREATE TABLE dbo.registration_demo (
    id INT IDENTITY PRIMARY KEY,
    name NVARCHAR(8)
);

Jetzt melden sich ein paar Leute an.

INSERT INTO dbo.registration_demo (name) VALUES
    ('John'),('Jane'),('Jeff');

Dann stellen Sie fest, dass Sie einen Zeitstempel für den Zeitpunkt der Registrierung benötigen.

Wenn diese Anwendung auf eine geografisch begrenzte Region beschränkt ist, dann müssen Sie kann verwenden Sie die lokale Serverzeit mit GETDATE() . Andernfalls sollten Sie beherzigen Tanner's Berücksichtigung für das weltweite Publikum mit GETUTCDATE() für den Standardwert.

Fügen Sie die Spalte mit einem Standardwert in einer Anweisung wie diese Antwort .

ALTER TABLE dbo.registration_demo
ADD time_registered DATETIME DEFAULT GETUTCDATE();

Lassen Sie uns einen weiteren Registranten holen und sehen, wie die Daten aussehen.

INSERT INTO dbo.registration_demo (name) VALUES
    ('Julia');

SELECT * FROM dbo.registration_demo;
id    name    time_registered
1     John    NULL
2     Jane    NULL
3     Jeff    NULL
4     Julia   2016-06-21 14:32:57.767

0voto

Usama Zafar Punkte 57

In SQLPlus wird beim Erstellen einer Tabelle wie folgt vorgegangen

SQL> create table Test

 ( Test_ID number not null,
   Test_Date date default sysdate not null );

SQL> insert into Test(id) values (1);

 Test_ID Test_Date
       1 08-MAR-19

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X