Setara dengan SQL Server dari MySQL SEKARANG ()?

197

Saya seorang pria MySQL yang mengerjakan proyek SQL Server, mencoba untuk mendapatkan bidang datetime untuk menunjukkan waktu saat ini. Di MySQL saya akan menggunakan SEKARANG () tetapi tidak menerima itu.

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

Jawaban:

215

getdate()atau getutcdate().

Daniel Schaffer
sumber
74
getdate() 

adalah padanan langsung, tetapi Anda harus selalu menggunakan datetimes UTC

getutcdate()

apakah aplikasi Anda beroperasi melintasi zona waktu atau tidak - jika tidak, Anda berisiko mengacaukan matematika tanggal pada transisi musim semi / gugur

Steven A. Lowe
sumber
24

Anda juga dapat menggunakan CURRENT_TIMESTAMP, jika Anda ingin menjadi lebih sesuai dengan ANSI (meskipun jika Anda mem-porting kode di antara vendor database, itu akan menjadi yang paling tidak membuat Anda khawatir). Persis sama dengan di GetDate()bawah selimut (lihat pertanyaan ini untuk lebih lanjut tentang itu).

Namun, tidak ada ANSI yang setara GetUTCDate(), yang mungkin harus Anda gunakan jika aplikasi Anda beroperasi di lebih dari satu zona waktu ...

Ian Varley
sumber
5
Saya suka CURRENT_TIMESTAMPkarena ini berfungsi di MySQL, SQL Server, Oracle ... Seperti yang Anda katakan, ini adalah kekhawatiran kami yang paling sedikit tetapi selalu membantu.
Álvaro González