我想使用表单将时间和日期插入表格。
<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到表中的行。 有没有更好的方法将特定时间和日期插入表格?
答案 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()的掩码。
这些是基础知识。当然,您必须进行大量的输入验证。您可能还需要验证是否有必要让用户输入时间的秒部分。