【问题标题】:Date time exception in coldfusion query in cfc and mySQLcfc 和 mySQL 中冷融合查询中的日期时间异常
【发布时间】:2011-03-06 20:59:40
【问题描述】:

我正在从 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>  

数据库字段设置为日期时间,默认为NULL

该参数是从一个空的或一个 javascript 验证日期的表单字段填充的。它在空的表单域上窒息。

【问题讨论】:

  • 这个输出异常的原因是:coldfusion.runtime.locale.CFLocaleBase$InvalidDateTimeException: on is an invalid date or time string..

标签: mysql sql coldfusion cfc


【解决方案1】:

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

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

如果参数值为空字符串,这将传递一个真正的 null。

【讨论】:

  • 这帮我解决了 Adam,ty,问题是 mySQL 没有将零长度字符串作为空值,Access 没有这样的疑虑!
【解决方案2】:

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

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

&zeroDateTimeBehavior=convertToNull

应该让你正确。

罗伯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 2011-01-15
    相关资源
    最近更新 更多