Tôi là một anh chàng MySQL làm việc trong dự án SQL Server, cố gắng lấy trường datetime để hiển thị thời gian hiện tại. Trong MySQL tôi sẽ sử dụng NOW () nhưng không chấp nhận điều đó.
INSERT INTO timelog (datetime_filed) VALUES (NOW())
Tôi là một anh chàng MySQL làm việc trong dự án SQL Server, cố gắng lấy trường datetime để hiển thị thời gian hiện tại. Trong MySQL tôi sẽ sử dụng NOW () nhưng không chấp nhận điều đó.
INSERT INTO timelog (datetime_filed) VALUES (NOW())
Câu trả lời:
getdate()
hoặc getutcdate()
.
getdate()
là tương đương trực tiếp, nhưng bạn phải luôn sử dụng dữ liệu UTC
getutcdate()
ứng dụng của bạn có hoạt động trên các múi giờ hay không - nếu không, bạn có nguy cơ làm hỏng toán ngày ở các chuyển đổi mùa xuân / mùa thu
SYSDATETIME()
và SYSUTCDATETIME()
là tương đương DateTime2 của
trả về một DateTime .
DateTime2 hiện là phương thức ưa thích để lưu trữ ngày và giờ trong SQL Server 2008+. Xem bài viết StackOverflow sau đây .
Bạn cũng có thể sử dụng CURRENT_TIMESTAMP
, nếu bạn cảm thấy muốn tuân thủ ANSI hơn (mặc dù nếu bạn chuyển mã giữa các nhà cung cấp cơ sở dữ liệu, đó sẽ là điều bạn lo lắng nhất). Nó chính xác giống như GetDate()
dưới vỏ bọc (xem câu hỏi này để biết thêm về điều đó).
GetUTCDate()
Tuy nhiên, không có ANSI tương đương , có lẽ là ứng dụng bạn nên sử dụng nếu ứng dụng của bạn hoạt động ở nhiều múi giờ ...
CURRENT_TIMESTAMP
bởi vì nó hoạt động trong MySQL, SQL Server, Oracle ... Như bạn đã nói, đó là điều ít lo lắng nhất của chúng tôi nhưng nó luôn giúp ích.