将DateTime以毫秒转换为SQL DateTime

时间:2011-04-25 06:48:59

标签: .net sql datetime

我正在进行这样的查询:

@" 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',

和这样的错误:

无法将varchar转换为日期时间

我该如何解决?我做错了什么?

2 个答案:

答案 0 :(得分:1)

关于此的SQL文档位于:Supported String Literal Formats for datetime

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

  

使用ISO 8601的优势   格式是它是一个国际化的   标准明确无误   规格。此外,这种格式是   不受SET DATEFORMAT或   SET LANGUAGE设置。

答案 1 :(得分:0)

嘿,你做这样的事情......

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

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

并将此sql Date作为参数传递..