2011-04-25 252 views
1

我做這樣的查詢:轉換日期時間用毫秒到SQL日期時間

@" if (" + logic + @") 
begin 
    INSERT INTO [FRIIB].[dbo].[Incidents] 
     ([RecTime] 
     ,[Name] 
     ,[Message]) 
    VALUES 
     ('"  + dt.ToString("yyyy/MM/dd hh:mm:ss.fff") + //ODBC : Canonical DT Format 

,得到了這樣的SQL:

if ((1 = 1)) 
begin 
INSERT INTO [FRIIB].[dbo].[Incidents] 
([RecTime],[Name],[Message]) 
VALUES 
('2011.02.14 04:30:10.020', 

和錯誤是這樣的:

能't convert varchar to datetime

我該如何解決它?我究竟做錯了什麼 ?

回答

2

這個SQL文件是在這裏:Supported String Literal Formats for datetime

所以,你可以使用ISO8601(例如:2004-05-23T14:25:10.487),因爲如文檔中所述:

使用ISO 8601 格式是它是具有明確的 規範的國際 標準。此外,此格式爲 不受SET DATEFORMAT或 SET LANGUAGE設置的影響。

+0

如何將DateTime轉換爲2004-05-23T14:25:10.487? – Cynede 2011-04-25 07:42:18

+1

myDateTime.ToString(「s」)爲您提供iso 8601格式化文本 – 2011-04-25 07:55:01

0

嘿,你做這樣的事..

java.util.Date dt = new java.util.Date(); 

    java.sql.Date sqlDate = new java.sql.Date(dt.getDate()); 

,並通過這個sqlDate作爲paremeter ..

+0

java?作爲參數傳遞? – Cynede 2011-04-25 07:00:05