2010-02-23 68 views
3

我有場:問題與SQL Server smalldatetime的插入查詢

APP_DATE (smalldatetime) 

我在做這個查詢:

INSERT INTO table (TYPE, CODE, APP_DATE, DATE) VALUES ('APP', '123', '02/10/2010 12.30', GETDATE()) 

它失敗:

Msg 296, Level 16, State 3, Line 1 
Conversion from datatype char to smalldatetime generated a value not between the interval of valid values. 
Instruction has been interrupted. 

(0 row(s) affected) 

我在做什麼錯誤?在我看來,作爲該領域的正確格式..

謝謝您的時間。

編輯:SQL Server 2000中

回答

4

在你的時間,而不是.只需使用:。然後它會插入罰款。

+0

仍然沒有工作: '02/19/2010 16:28'< - 相同的錯誤 – 0plus1 2010-02-23 15:00:13

+0

@ 0plus1:工作對我來說很好..... – 2010-02-23 15:14:34

+0

啊,我有SQL Server 2005.也許這就是問題所在。嘗試更改日期的格式,也許'2010-19-02 16:28'?或許你已經得到了錯誤的區域設置,它認爲19月份? – 2010-02-23 15:17:42

2

的日期時間格式不正確;年應爲4位(否則它是不明確的)和時間分離器應該是一個冒號。

2003年1月22日22:31將工作。見this article

0

如果您不需要領域的SQL Server將默認爲00:00:00您在時間因素,如果你只是在'02 /二千零十分之一十發送' 如果需要,則時間元素您的格式你的例子中的時間是錯誤的,它應該是這樣的 - '02/10/2010 12:31:00'

5

你可以嘗試使用ISO-8601 date format(YYYYMMDD HH:MM:SS) - 這會SQL Server上總是工作 - 無論區域和區域設置:

INSERT INTO table (TYPE, CODE, APP_DATE, DATE) 
VALUES ('APP', '123', '20100210 12:30:00', GETDATE()) 
1

INSERT INTO yourTable(yourSmallDateTimeColumn)VALUES( '1900-01-01 11點45分23秒'); //格式「YYYY-MM -dd HH:mm:ss「