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())
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:
getdate()ou getutcdate().
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
SYSDATETIME() e SYSUTCDATETIME()
são os equivalentes DateTime2 de
que retornam um DateTime .
Agora, o DateTime2 é o método preferido para armazenar a data e a hora no SQL Server 2008+. Consulte a seguinte publicação StackOverflow .
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 ...
CURRENT_TIMESTAMPporque funciona em MySQL, SQL Server, Oracle ... Como você disse, é a menor das nossas preocupações, mas sempre ajuda.