ฉันเป็นคน MySQL ที่ทำงานในโครงการ SQL Server พยายามรับฟิลด์ datetime เพื่อแสดงเวลาปัจจุบัน ใน MySQL ฉันใช้ตอนนี้ () แต่ก็ไม่ยอมรับ
INSERT INTO timelog (datetime_filed) VALUES (NOW())
ฉันเป็นคน MySQL ที่ทำงานในโครงการ SQL Server พยายามรับฟิลด์ datetime เพื่อแสดงเวลาปัจจุบัน ใน MySQL ฉันใช้ตอนนี้ () แต่ก็ไม่ยอมรับ
INSERT INTO timelog (datetime_filed) VALUES (NOW())
คำตอบ:
getdate()
getutcdate()
หรือ
getdate()
เทียบเท่าโดยตรงแต่คุณควรใช้ชุดข้อมูล UTC เสมอ
getutcdate()
แอพของคุณทำงานในเขตเวลาหรือไม่ - ไม่เช่นนั้นคุณมีความเสี่ยงในการคำนวณคณิตศาสตร์ในช่วงฤดูใบไม้ผลิ / ฤดูใบไม้ร่วง
SYSDATETIME()
และ SYSUTCDATETIME()
มีค่าเทียบเท่าDateTime2ของ
DateTime2เป็นวิธีที่ต้องการสำหรับการจัดเก็บวันที่และเวลาใน SQL Server 2008+ ดูต่อไปนี้StackOverflow โพสต์
นอกจากนี้คุณยังสามารถใช้CURRENT_TIMESTAMP
หากคุณรู้สึกว่าเป็น ANSI ที่สอดคล้องกันมากขึ้น (แม้ว่าคุณจะย้ายรหัสระหว่างผู้ขายฐานข้อมูลก็ตาม มันเหมือนกับที่GetDate()
อยู่ใต้ผ้าห่ม (ดูคำถามนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนั้น)
ไม่มี ANSI ที่เทียบเท่ากันGetUTCDate()
แต่น่าจะเป็นสิ่งที่คุณควรใช้หากแอปของคุณทำงานในโซนเวลาเดียวมากกว่า ...
CURRENT_TIMESTAMP
เพราะมันใช้งานได้ใน MySQL, SQL Server, Oracle ... อย่างที่คุณบอกว่ามันเป็นสิ่งที่เรากังวลน้อยที่สุด แต่ก็ช่วยได้เสมอ