cfc和mySQL中coldfusion查询中的日期时间异常

cfc和mySQL中coldfusion查询中的日期时间异常,mysql,sql,coldfusion,cfc,Mysql,Sql,Coldfusion,Cfc,我正在从MS Access后端迁移到mySQL。这过去是可行的,但现在不行了,我想不出问题所在 <cfargument required="false" name="expiry" type="any" default="" /> <cfquery datasource='#arguments.dsn#'> INSERT INTO users(expiry) VALUES (<cfque

我正在从MS Access后端迁移到mySQL。这过去是可行的,但现在不行了,我想不出问题所在

<cfargument required="false" name="expiry" type="any" default="" />


        <cfquery datasource='#arguments.dsn#'>      
            INSERT INTO users(expiry)
            VALUES (<cfqueryparam value="#arguments.expiry#" cfsqltype="CF_SQL_TIMESTAMP"/>)
        </cfquery>  

插入用户(到期)
值()
数据库字段设置为datetime,默认为NULL


参数是从一个表单字段填充的,该字段为空,或者是一个javascript验证日期。它阻塞了空的formfield。

CF的JDBC驱动程序MySQL实现不能很好地处理空日期

您需要在CF admin中的DSN连接字符串设置(在高级下)中添加配置标志

&zeroDateTimeBehavior=convertToNull

应该会让你恢复健康


Rob

在您弄乱DSN设置之前,我还会尝试将您的
更改为以下内容:

<cfqueryparam value="#arguments.expiry#" cfsqltype="CF_SQL_TIMESTAMP" null="#len(arguments.expiry) eq 0#" />


在参数值为空字符串的情况下,这将传递一个真正的null。

此输出异常的原因是:coldfusion.runtime.locale.CFLocaleBase$InvalidDateTimeException:on是一个无效的日期或时间字符串。这解决了Adam,ty,问题是mySQL没有将零长度字符串作为null,访问没有这样的疑虑!!