将带有毫秒的DateTime转换为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转换为日期时间

我该如何修复它?我哪里做错了?

SQL文档在这里:支持的字符串文字格式的日期时间

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

使用ISO 8601的优势格式就是它是一个国际性的明确的标准规范。此外,这种格式是不受SET DATEFORMAT或的影响SET语言设置。

嘿,你做这样的事…

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

相关内容

  • 没有找到相关文章

最新更新