更新日期比较日期与另一个字段更新字段

时间:2015-10-26 14:34:16

标签: sql coldfusion

我有一个按钮,当用户点击它时,该按钮会在数据库中设置due_date。然后我有另一个按钮,当它被点击时,它会在数据库中设置date_finished

我还有一个需要完成的字段,然后单击完成的按钮。我想弄清楚如何将date_finisheddate_due进行比较,以便如果日期在date_due之后(第二天),我想更新我的Late带有' Y'或者如果date_finished按时或等于同一天,请使用' N'更新我的Late字段。

我无法弄清楚如何在同一查询中比较日期。

enter image description here

<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>

1 个答案:

答案 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>