使用ColdFusion将日期时间(毫秒)插入MSSQL数据库

Red*_*pia 4 sql-server coldfusion datetime odbc lucee

使用ColdFusion(Lucee 4.5),我需要将包含毫秒的日期时间值插入到MSSQL数据库中.我正在创建这样的UTC日期时间值:

nowUTC = dateConvert("Local2UTC", now());
nowODBC = createODBCDateTime(nowUTC);
Run Code Online (Sandbox Code Playgroud)

然后我使用以下SQL代码插入:

insert into tbl (theTime) values (#nowODBC#)
Run Code Online (Sandbox Code Playgroud)

但是,此方法不包括毫秒.插入到db中的值如下所示:

2015-10-26 02:14:07.000
Run Code Online (Sandbox Code Playgroud)

.(句号)结尾后的最后3位数是MSSQL的第二种表示法的分数(1/300),总是.000

我怎么能包括毫秒或几分之一秒? 1/300很好.

Lei*_*igh 5

我目前无法与Lucee一起测试,但我怀疑问题没有使用cfqueryparam.CF11下的结果相同.要插入日期和时间(包括毫秒),请使用带有类型时间戳的 cfqueryparam,而不是createODBCDateTime:

<cfquery ....>
   INSERT INTO tbl (theTime) 
   VALUES 
   ( 
     <cfqueryparam value="#nowUTC#" cfsqltype="cf_sql_timestamp">
   )
</cfquery>
Run Code Online (Sandbox Code Playgroud)

更新:

正如评论中提到的Redtopia,cfscript版本将是addParam():

query.addParam(name="theTime"
                , value=nowUTC
                , cfsqltype="cf_sql_timestamp"
              );
Run Code Online (Sandbox Code Playgroud)