Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment comparer des dates dans SQL Server

Il y a quelques problèmes qui se posent ici. Tout champ de formulaire qui se termine par _date est un critère de validation de formulaire. Le champ de formulaire doit donc être renommé todate et fromdate. Ensuite, il est bon que vous essayiez de nettoyer l'entrée. cfqueryparam sert à faire ça. Enfin et surtout, entre est un SQL plus propre Votre requête devrait ressembler un peu à :

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