2011-08-09 17 views
16

Mam pole, które po wstawieniu czegoś chcę, aby uzyskać bieżącą datę & Czas i wstaw to do bazy danych. Czy istnieje sposób, aby uzyskać datę & czasu i ustawić ją jako wartość domyślną?Domyślny datownik daty serwera SQL?

Obecnie domyślną wartością jest: (getdate()), która ustawia tylko datę. Jak ustawić czas?

+0

Musisz określić, jakiej implementacji SQL używasz ... – JNK

+1

@JNK: czy utworzyłeś również makro do tego? – VoodooChild

+1

@voodoo jeszcze nie, ale jestem blisko – JNK

Odpowiedz

26

GETDATE() to data i czas w SQL Server.

Uruchomienie SELECT GETDATE() w celu weryfikacji.

Jaki jest typ Twojego pola? Jeśli jest to DATE, nie będzie również zawierać wartości czasu.

+1

+1: GetDate otrzymuje także znacznik czasu! – VoodooChild

+0

Co zrobić, jeśli nie chcesz korzystać z aktualnego czasu? – Amicable

+0

Pytanie dotyczy zwrotu bieżącej daty i godziny. Co dokładnie chcesz/ – JNK

2

SYSDATETIME() otrzyma aktualną datę i godzinę.

Upewnij się, że typ danych kolumny to datetime, a nie tylko date lub nie będzie w stanie zatrzymać datetime.

0

Większość implementacji SQL (silników) ma funkcję CURRENT_TIMESTAMP.

4

Prostym sposobem jest dać dziedzinie domyślne ograniczenie:

create table YourTable 
    (
    ... other columns ... 
    CreateDt datetime default getdate(), 
    ... other columns ... 
    ) 

Wadą tej metody jest to, że można nadpisać wartości, określając go w klauzuli insert.

3

Osobiście chciałbym użyć GETUTCDATE() zamiast GETDATE(), aby uniknąć nieporozumień.

+2

Polecam, albo. Bardzo trudno jest pozbyć się czasu lokalnego, jeśli go używasz. –