如何在表格中正确插入时间和日期?

时间:2014-06-17 18:42:47

标签: coldfusion

我想使用表单将时间和日期插入表格。

<tr>
    <td> Date (Please enter date format mm/dd/yyyy.):</td>
        <td><INPUT TYPE="text" NAME="date_used" SIZE="10"  VALIDATE="date"></td>
                </tr>
                <tr>
            <td> Time (Please enter time format hh:mm tt):</td>
            <td><INPUT TYPE="text" NAME="time_used" SIZE="10"  VALIDATE="time" ></td>
                </tr>

.....
<CFSET date_used = #DateFormat(CREATEODBCDATETIME(date_used), "mm/d/yyyy")#>
<CFSET time_used = #DATEFormat(CREATEODBCTIME(time_used),"h:mm tt")#> 

但当我将其插入表格时,我收到错误

&#34;从字符串转换日期和/或时间时转换失败。&#34;

即将插入time_used到表中的行。 有没有更好的方法将特定时间和日期插入表格?

1 个答案:

答案 0 :(得分:4)

首先,Dateformat和TimeFormat返回字符串,您需要一个datetime对象。获得它的方法是使用ParseDateTime。

 <cfset YourDateTime = 
    ParseDateTime(form.Date_used & ' ' & form.time_used, 'mask goes here')>

然后在您的查询中,使用cfqueryparam的cfsqltype属性来分隔日期和时间。

insert into table (datefield, timefield)
values
(<cfqueryparam cfsqltype="cf_sql_date" value="#YourDateTime#">
, <cfqueryparam cfsqltype="cf_sql_time" value="#YourDateTime#">
)

您可以查找用于ParseDateTime()的掩码。

这些是基础知识。当然,您必须进行大量的输入验证。您可能还需要验证是否有必要让用户输入时间的秒部分。