2011-03-13 48 views

回答

102

DateTime值應該被插入,如果他們是用單引號括起來的字符串:

'20100301' 

SQL Server允許許多接受的日期格式,它應該是最有發展庫提供了一系列的類或情況函數來正確插入日期時間值。但是,如果你正在做手工,它區分使用DateFormat日期格式,並使用通用的格式是很重要的:

Set DateFormat MDY --indicates the general format is Month Day Year 

Insert Table(DateTImeCol) 
Values('2011-03-12') 

通過設置日期格式,SQL Server現在假定我的格式爲YYYY-MM-DD,而不是YYYY-DD-MM

SET DATEFORMAT

SQL Server還認識一個通用的格式,總是被解釋的一樣:YYYYMMDD例如20110312

如果您問如何使用T-SQL插入當前日期和時間,那麼我會建議使用關鍵字CURRENT_TIMESTAMP。例如:

Insert Table(DateTimeCol) 
Values(CURRENT_TIMESTAMP) 
+1

是正確的嗎?你'設置DateFormat MDY',但後來你說SQL Server現在假定我的格式是'YYY-MM-DD'。爲什麼SQL Server不希望你的格式匹配'Set DateFormat'並尋找'MM-DD-YYYY'?我並不是說這是錯的(我不知道),但它似乎是反直覺的。 – JerryOL 2011-03-13 21:21:24

+3

@JerryOL - 「設置DateFormat MDY」只決定SQL如何解釋月份和日期的順序,而不是確切的格式。你可以自己嘗試。如果你調用'Set DateFormat DMY','2011-03-12'是12月3日。如果你調用'Set DateFormat MDY',同一日期是3月12日。 – Thomas 2011-03-13 22:41:11

+2

@JerryOL - 順便說一句,我也可以使用'YMD'或'YDM'並獲得相同的效果,但是我發現這些格式只有在您未通過四位數年份時纔有用。 – Thomas 2011-03-13 22:43:43

8

,如果你有一點GETDATE()實際工作時間會是你在尋找什麼

14

您將需要有一個表中的列datetime功能。然後,你可以做一個插入類似下面插入當前日期:

INSERT INTO MyTable (MyDate) Values (GetDate()) 

如果不是今天的日期,那麼你應該能夠使用字符串和specify the date format

INSERT INTO MyTable (MyDate) Values (Convert(DateTime,'19820626',112)) --6/26/1982 

你不總是需要轉換字符串,通常你可以做類似這樣的事情:

INSERT INTO MyTable (MyDate) Values ('06/26/1982') 

而SQL Server會爲你弄明白。

-1
myConn.Execute "INSERT INTO DayTr (dtID, DTSuID, DTDaTi, DTGrKg) VALUES (" & Val(txtTrNo) & "," & Val(txtCID) & ", '" & Format(txtTrDate, "yyyy-mm-dd") & "' ," & Val(Format(txtGross, "######0.00")) & ")" 

完成在用vb所有文本類型的變量。

相關問題