数据截断:日期时间值不正确 - coldfusion

时间:2015-09-23 14:50:07

标签: mysql date datetime coldfusion coldfusion-8

我正在处理已完成的事件的提交表单,转到处理页面并更新数据库。

我有14个领域,其中有几个领域是活动的日期和时间。

在处理表单期间,我在尝试插入数据库之前加入两个表单条目,日期和时间,但发生错误。

  

数据截断:日期时间值不正确

以下是失败的代码元素:

<cfset insdate = form["date"] & form["time"]>
<cfset new_date = #CREATEODBCDATETIME(insdate)#>

<cfif len(trim("#institle#"))>
        <cfquery name="modify">
            INSERT INTO table
            SET
            title = <cfqueryparam                      
                     cfsqltype="CF_SQL_LONGVARCHAR" 
                     value="#institle#">,
            dateTime = <cfqueryparam 
                     cfsqltype="CF_SQL_LONGVARCHAR" 
                     value="#new_date#">,
            location = <cfqueryparam 
                     cfsqltype="CF_SQL_LONGVARCHAR" 
                     value="#inslocation#">,
            category = <cfqueryparam 
                     cfsqltype="CF_SQL_SMALLINT" 
                     value="#inscategory#">,
            type = <cfqueryparam 
                     cfsqltype="CF_SQL_TINYINT" 
                     value="#instype#">                                   
         </cfquery>
</cfif>

我修改了上面的代码,使其更短更容易阅读。如果有人有任何想法,我做错了,那就太好了。

我正在运行Coldfusion 8,一个mySQL数据库,数据库接受相关字段的日期时间,格式为yyyy-mm-dd:mm:ss格式。

干杯。

2 个答案:

答案 0 :(得分:1)

ColdFusion可以使用cfSqlType="CF_SQL_TIMESTAMP"处理几种日期时间格式的字符串表示,如前所述。根本不需要为查询创建日期(时间)对象。只需确保isDate(yourDateTimeString)为字符串返回true(因为这是CF_SQL_TIMESTAMP将假设的)并且要注意区域设置的差异。 (ddmmyyyymmddyyyy是两种令人讨厌的格式,会被ColdFusion混淆,我保证。)

答案 1 :(得分:1)

在这里追逐。将您的代码更改为:

<!--- create a date object --->
<cfset new_date = CREATEODBCDATETIME(insdate)>
<!--- format for the DB --->
<cfset new_date = dateformat (new_date, 'yyyy-mm-dd') & ' ' & timeformat(new_date,'HH:mm:ss')>

查看是否为您插入。大多数DB采用字符串并在内部隐式转换为dattime。