Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come confrontare le date in SQL Server

Ci sono un paio di problemi in corso qui. Qualsiasi campo modulo che termina con _date è un criterio di convalida del modulo. Quindi il campo del modulo deve essere rinominato todate e fromdate. Quindi è bene che tu stia cercando di disinfettare l'input. cfqueryparam è usato per farlo. Ultimo ma non meno importante, tra è SQL più pulito La tua query dovrebbe assomigliare un po' a:

<cfif isDate(form.fromDate) AND isDate(form.toDate)>

    <cfquery name="qryUser_Activation_Events">
    SELECT * 
    FROM   user_activation_events
    WHERE  STATUS_CODE =1
    AND    event_date BETWEEN <cfqueryparam cfsqltype="CF_SQL_date" value="#form.fromDate#">
        AND DATEADD(d, 1, <cfqueryparam cfsqltype="CF_SQL_date" value="#form.toDate#">)
    ORDER BY ...
    </cfquery>

<cfelse>  
    <!--- Error handling goes here --->
</cfif>