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())

Respostas:



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



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 ...


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.