Sono un ragazzo di MySQL che lavora su un progetto SQL Server, cercando di ottenere un campo datetime per mostrare l'ora corrente. In MySQL userei NOW () ma non lo accetta.
INSERT INTO timelog (datetime_filed) VALUES (NOW())
Sono un ragazzo di MySQL che lavora su un progetto SQL Server, cercando di ottenere un campo datetime per mostrare l'ora corrente. In MySQL userei NOW () ma non lo accetta.
INSERT INTO timelog (datetime_filed) VALUES (NOW())
Risposte:
getdate()
oppure getutcdate()
.
getdate()
è l'equivalente diretto, ma è sempre necessario utilizzare i tempi di utilizzo UTC
getutcdate()
indipendentemente dal fatto che la tua app funzioni su più fusi orari oppure no, altrimenti corri il rischio di rovinare la matematica delle date nelle transizioni primavera / autunno
SYSDATETIME()
e SYSUTCDATETIME()
sono gli equivalenti DateTime2 di
che restituisce un DateTime .
DateTime2 è ora il metodo preferito per archiviare la data e l'ora in SQL Server 2008+. Vedi il seguente StackOverflow Post .
Puoi anche usare CURRENT_TIMESTAMP
, se hai voglia di essere più conforme ANSI (anche se stai portando il codice tra i fornitori di database, questo sarà l'ultimo dei tuoi dubbi). È esattamente lo stesso di GetDate()
sotto le copertine (vedi questa domanda per ulteriori informazioni al riguardo).
Non esiste un equivalente ANSI GetUTCDate()
, tuttavia, che è probabilmente quello che dovresti usare se la tua app funziona in più di un singolo fuso orario ...
CURRENT_TIMESTAMP
perché funziona in MySQL, SQL Server, Oracle ... Come hai detto, è l'ultima delle nostre preoccupazioni ma aiuta sempre.