Équivalent SQL Server de NOW () de MySQL?

197

Je suis un gars MySQL travaillant sur un projet SQL Server, essayant d'obtenir un champ datetime pour afficher l'heure actuelle. Dans MySQL, j'utiliserais NOW () mais il n'accepte pas cela.

INSERT INTO timelog (datetime_filed) VALUES (NOW())
Andrew G. Johnson
la source

Réponses:

215

getdate()ou getutcdate().

Daniel Schaffer
la source
74
getdate() 

est l'équivalent direct, mais vous devez toujours utiliser les heures UTC

getutcdate()

si votre application fonctionne sur plusieurs fuseaux horaires ou non - sinon vous courez le risque de bousiller les calculs de date lors des transitions printemps / automne

Steven A. Lowe
la source
24

Vous pouvez également utiliser CURRENT_TIMESTAMP, si vous souhaitez être plus conforme à ANSI (bien que si vous portez du code entre des fournisseurs de bases de données, ce sera le moindre de vos soucis). C'est exactement la même chose que GetDate()sous les couvertures (voir cette question pour plus d'informations).

Il n'y a cependant pas d'équivalent ANSI GetUTCDate(), qui est probablement celui que vous devriez utiliser si votre application fonctionne dans plusieurs fuseaux horaires ...

Ian Varley
la source
5
J'aime CURRENT_TIMESTAMPparce que ça marche dans MySQL, SQL Server, Oracle ... Comme vous l'avez dit, c'est le moindre de nos soucis mais ça aide toujours.
Álvaro González le