Sql-Server

日期時間語法錯誤

  • July 6, 2022

我正在 SSMS 中建構一個非常基本的數據庫,其中一個表將保存“睡眠實例”,記錄入睡和醒來的時間。我創建了包含三列的表:ID (int)、StartTime (DateTime)、EndTime (DateTime)。我現在正在嘗試添加第一行:

INSERT INTO SleepInstances
VALUES (1, 2022-07-05 22:20:00, 2022-07-06 06:40:00);

我在 StartTime 小時 (22) 收到語法錯誤。據我所知,它的格式正確且與 EndTime 值相同,這沒有給我任何錯誤。

我能找到的關於時間問題的唯一答案似乎與時區有關,我無法想像這是這裡的問題,因為無論我嘗試什麼時間都會遇到錯誤。我對 SQL 很陌生,所以所有這些都基於 W3 Schools 頁面上的日期函式。

您可以在 SQL Server 中將日期時間文字指定為字元串。即,將其括在單引號中。它應該類似於以下內容:

INSERT INTO SleepInstances
VALUES (1, '2022-07-05 22:20:00', '2022-07-06 06:40:00');

但是,由於您說數據類型是日期時間,因此您應該使用與語言無關的日期時間格式,如下所示:

INSERT INTO SleepInstances
VALUES (1, '2022-07-05T22:20:00', '2022-07-06T06:40:00');

如果數據類型是 datetime2,那麼第一種格式也是語言中立的。我已經在這篇文章中詳細闡述了這一點以及更多內容。

引用自:https://dba.stackexchange.com/questions/314122