2010-12-20 10 views
57

W kodzie VB.net tworzę żądania z parametrami SQL. Ustawiłem parametr DateTime na wartość DateTime.Now, jak będzie wyglądać moja prośba?Ustaw pole bazy danych DateTime na "Teraz"

UPDATE table SET date = "2010/12/20 10:25:00"; 

lub

UPDATE table SET date = GETDATE(); 

W pierwszym przypadku jestem pewien, że każdy rekord będzie ustawiony dokładnie w tym samym czasie. W drugim przypadku zależy to od sposobu, w jaki DBMS przetwarza żądanie. Co prowadzi mnie do drugiego pytania: czy SQL Server ustawia tę samą datę i czas, kiedy aktualizuje dużą tabelę za pomocą NOW()?

EDYCJA: zastąpione TERAZ() (które nie istnieje w SQL Server) przez GETDATE().

Odpowiedz

111

W SQL trzeba użyć GETDATE():

UPDATE table SET date = GETDATE(); 

Nie ma NOW() funkcja.


Aby odpowiedzieć na to pytanie:

w dużym stole, ponieważ funkcja jest wyliczana dla każdego wiersza, skończy się coraz różne wartości dla pola aktualizowana.

Dlatego, jeśli wymogiem jest, aby ustawić je wszystkie do tego samego dnia chciałbym zrobić coś takiego (niesprawdzone):

DECLARE @currDate DATETIME; 
SET @currDate = GETDATE(); 

UPDATE table SET date = @currDate; 
+0

Ups, tak TERAZ() to Mysql, przepraszam. Ale pytania pozostają. –

+0

@ Thibault Witzig - Odpowiedziałem na to w mojej aktualizacji :) – Oded

+0

Ok dzięki. Tak więc muszę się upewnić, że aktualna data (z kodu) w moim żądaniu nie jest GETDATE() Czy wiesz, że ustawienie SQLparameter na DateTime.Now to zrobi lub jeśli powinienem najpierw przekonwertować datę na ciąg, a następnie dodać go do wniosku? –

6

Używaj GETDATE()

zwraca aktualny system bazy danych timestamp jako wartość datetime bez przesunięcia strefy czasowej bazy danych. Ta wartość pochodzi z działającego systemu komputera, na którym uruchomione jest wystąpienie SQL Server w wersji .

UPDATE table SET date = GETDATE() 
16

Alternatywą GetDate() jest CURRENT_TIMESTAMP. Czy to samo.

+2

'CURRENT_TIMESTAMP' jest aktualnym standardem SQL, więc niektórzy mogą twierdzić, że jest to preferowana składnia. –

Powiązane problemy