2012-03-26 56 views
5

我試圖插入日期到表中,但日期和插入日期的格式的日期格式問題搞砸。表中的數據類型是Date。我的插入腳本如下。SQL Server 2008中 - 同時插入

insert into Trans(ID, TDate, Description) 
values(1, CONVERT(datetime, 25-02-2012, 101), 'Opening') 

我想在dd/MM/yyyy格式插入,我希望它在我的表相同的格式。但在我的表中,日期是1894-07-22

我想準確地插入,因爲我希望格式的日期和我想看到插入的日期如下表25-02-2012

這裏有什麼問題?有人可以幫忙嗎?

+5

您應使用ISO格式('YYYYMMDD ' - **沒有破折號或任何東西!)這是語言和日期設置獨立並適用於每個SQL Server實例。此外:SQL Server **不會**以任何特定的基於字符串的格式存儲日期 - 它存儲爲8字節的二進制數據。所有你看到的是** DATE'的字符串表示**存儲 - 你**不能**以特定格式存儲它 - DATE'是'DATE'是'DATE'。 – 2012-03-26 19:06:24

回答

0

你應該在你約會時使用單引號。如果你想dd/mm/yyyy格式的日期格式,那麼你將要使用的轉換(日期時間,'25 -02-2012' ,103)

insert into Trans(ID,TDate,Description) 
values(1,CONVERT(datetime,'25-02-2012',103),'Opening') 

如果使用convert(varchar, getdate(), 101)日期的格式爲mm/dd/yyyy

有幾個有用的鏈接爲日期時間轉換的參考使用:

+0

謝謝bluefeet。將嘗試它.. – Codebug 2012-03-27 18:11:40

+0

convert(char(10)),'25-02-2012',103)給出錯誤,因爲我的表字段類型是datetime。 – Codebug 2012-04-01 18:26:52

+0

已更新to convert(datetime ...) – Taryn 2012-04-01 18:34:53

-1
insert into emp 
(EMPNO,ENAME,DEPTNO,JOB,SAL,COMM,MGR,HIREDATE)values 
(7839,'KING',10,'PRESIDENT',5000,NULL,NULL,'17-11-81') 
+0

這個答案甚至與這個問題有什麼關係? – 2015-07-21 19:40:20