117 votes

Attribuer la valeur "Now" à un champ de la base de données DateTime

Dans le code VB.net, je crée des requêtes avec des paramètres SQL. Je mets un paramètre DateTime à la valeur DateTime.Maintenant, à quoi va ressembler ma requête ?

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

ou

UPDATE table SET date = GETDATE();

Dans le premier cas, je suis sûr que chaque enregistrement sera réglé exactement à la même heure. Dans le second cas, cela dépend de la manière dont le SGBD traite la demande. Ce qui m'amène à la deuxième question : est-ce que SQL Server met la même date et la même heure lors de la mise à jour d'une grande table avec NOW() ?

EDIT : a remplacé NOW() (qui n'existe pas dans SQL Server) par GETDATE().

208voto

Oded Points 271275

En SQL, vous devez utiliser GETDATE() :

UPDATE table SET date = GETDATE();

Il n'y a pas de NOW() fonction.


Pour répondre à votre question :

Dans un grand tableau, comme la fonction est évaluée pour chaque ligne, vous obtiendrez des valeurs différentes pour le champ mis à jour.

Par conséquent, si vous souhaitez que toutes les dates soient les mêmes, je ferais quelque chose comme ceci (non testé) :

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

UPDATE table SET date = @currDate;

30voto

Don Simon Points 30

Une alternative à GETDATE() est CURRENT_TIMESTAMP. Elle fait exactement la même chose.

7voto

astander Points 83138

Utilice GETDATE()

Renvoie la valeur actuelle de d sous la forme d'un sans le décalage du fuseau horaire de la base de données. Cette est dérivée du système d'exploitation de l'ordinateur sur lequel l l'instance de SQL Server s'exécute.

UPDATE table SET date = GETDATE()

0voto

Som Points 1

Si vous ajoutez une ligne au tableau et que vous avez besoin qu'une valeur soit mise à jour avec la date et l'heure actuelles, utilisez - now() par exemple. insert into actor values (202,'ALIA', 'BHATT',now()) ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X