我有一个按钮,当用户点击它时,该按钮会在数据库中设置due_date
。然后我有另一个按钮,当它被点击时,它会在数据库中设置date_finished
。
我还有一个需要完成的字段,然后单击完成的按钮。我想弄清楚如何将date_finished
与date_due
进行比较,以便如果日期在date_due
之后(第二天),我想更新我的Late
带有' Y'或者如果date_finished
按时或等于同一天,请使用' N'更新我的Late
字段。
我无法弄清楚如何在同一查询中比较日期。
<cfquery name="workComplete">
UPDATE dbo.Work
SET date_finished = getDate(),
<cfif date_finished > due_date>
Late = <cfqueryparam value="Y" cfsqltype="cf_sql_varchar">
<cfelse>
Late = <cfqueryparam value="N" cfsqltype="cf_sql_varchar">
</cfif>
WHERE id = <cfqueryparam value="11" cfsqltype="cf_sql_integer">,
</cfquery>
答案 0 :(得分:1)
您可能希望使用CASE
语句根据数据库值进行比较
<cfquery name="workComplete">
UPDATE dbo.Work
SET date_finished = getDate(),
Late = CASE WHEN date_finished > due_date THEN 'Y' ELSE 'N' END
WHERE id = <cfqueryparam value="11" cfsqltype="cf_sql_integer">,
</cfquery>
如果date_finished是ColdFusion中的值,您也可以将其输出为ColdFusion值
<cfquery name="workComplete">
UPDATE dbo.Work
SET date_finished = getDate(),
Late = CASE WHEN #form.date_finished# > due_date THEN 'Y' ELSE 'N' END
WHERE id = <cfqueryparam value="11" cfsqltype="cf_sql_integer">,
</cfquery>