变量中的Coldfusion CFset日期

Den*_*one 2 coldfusion date

我看到了类似的帖子,但不完全是我要完成的任务。

我要做的就是将当前日期和时间保存在一个可以添加到数据库表的变量中。但是,当表单提交时,出现500 Server页面错误

下面是我到目前为止的代码:

<cfif isDefined("FORM.submit") AND #FORM.submit# IS NOT "">
    <cfoutput>
        <cfset var submit_date = #DateFormat(Now(),"mm/dd/yy - HH:mm:ss")#>
        <cfquery name="InsertSuggestion" datasource="MainDB">
            INSERT INTO Suggestion_Form (Submission_Date,Submission_Content)
            VALUES      ('#submit_date#','#FORM.suggestion_text#')
        </cfquery>
    </cfoutput>
    <div style="text-align:center;width:100%;">We value your feedback. Your request has been recieved.</div>  
<cfelse>
Run Code Online (Sandbox Code Playgroud)

Dan*_*cuk 5

如果您的RDBMS具有返回当前日期和时间的内容,建议您使用它。例如,在sql server中,查询变为:

INSERT INTO Suggestion_Form 
(Submission_Date
,Submission_Content
)
VALUES      
(getdate()
, <cfqueryparam cfsqltype="cf_sql_varchar" value="#FORM.suggestion_text#">
)
Run Code Online (Sandbox Code Playgroud)

如果要从ColdFusion提交某些内容,只需提交now()。

VALUES      
(<cfqueryparam cfsqltype="cf_sql_timestamp" value="#now()#">
Run Code Online (Sandbox Code Playgroud)

与您的问题无关,但我还添加了一个查询参数标签,该标签为您带来了很多好处。另外,我使用的格式(每行1个字段,左边带逗号)使您在需要进行故障排除时更容易注释掉内容。

  • 请不要将未参数化的表单范围变量发送到SQL查询中。使用cfqueryparam http://help.adobe.com/zh_CN/ColdFusion/10.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-7c36.html (2认同)
  • 顺便说一句,无论使用哪种方法,都要保持一致。如果数据库服务器与CF服务器不在同一台机器上,则getDate()和now()可能返回不同的结果。因此,请使用其中之一,而不要同时使用两者。 (2认同)