SQL Server equivalente ao NOW () do MySQL?

197

Eu sou um cara do MySQL trabalhando em um projeto do SQL Server, tentando obter um campo de data e hora para mostrar a hora atual. No MySQL eu usaria NOW (), mas não está aceitando isso.

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

Respostas:

215

getdate()ou getutcdate().

Daniel Schaffer
fonte
74
getdate() 

é o equivalente direto, mas você sempre deve usar datas UTC

getutcdate()

se seu aplicativo opera em fusos horários ou não - caso contrário, você corre o risco de estragar a matemática das datas nas transições primavera / outono

Steven A. Lowe
fonte
24

Você também pode usar CURRENT_TIMESTAMP, se quiser ser mais compatível com ANSI (embora esteja portando código entre fornecedores de banco de dados, essa será a menor das suas preocupações). É exatamente o mesmo que GetDate()debaixo das cobertas (consulte esta pergunta para mais sobre isso).

No GetUTCDate()entanto, não existe um equivalente ANSI , provavelmente o que você deve usar se seu aplicativo operar em mais de um único fuso horário ...

Ian Varley
fonte
5
Gosto CURRENT_TIMESTAMPporque funciona em MySQL, SQL Server, Oracle ... Como você disse, é a menor das nossas preocupações, mas sempre ajuda.
Álvaro González