Получить данные на основе диапазона дат - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть следующий запрос, который извлекает информацию о пользователе на основе имени пользователя, имени больницы, даты процесса и даты выписки.Однако части запроса «Дата обработки» и «Дата выгрузки» не работают должным образом.Оба типа datetime.

Вот запрос, который проверит введенный диапазон дат пользователя (среди прочих входных данных) и проверит, существует ли запись:

<cfif isDefined("form.FirstName") AND isDefined("form.LastName") AND isDefined("form.Hosp") AND isDefined("form.FromDischargeDt") 
AND isDefined("form.ToDischargeDt") AND isDefined("form.FromProcessDt") AND isDefined("form.ToDProcessDt") AND form.Hosp NEQ "Particular Hospital Name">

    <cftransaction>

        <cfquery name="HospitalVisits1" datasource="source">
            SELECT First_Name, 
                   Last_Name, 
                   DOB, 
                   Sex, 
                   Service, 
                   Service_Desc, 
                   Service_Dt, 
                   Admit_Dt, 
                   Phone, 
                   Address1, 
                   Address2, 
                   City, 
                   State, 
                   Zip, 
                   Account, 
                   Hosp_Name,
                   MR_Number, 
                   Insurance, 
                   Plan_Name, 
                   Policy_No, 
                   Group_No, 
                   Reason_For_Visit, 
                   Process_Dt,
                   Discharge_Dt,
                   [Pt Class] as PtClass
            FROM Hospital_Data
            WHERE 
                First_Name like <cfqueryparam value="%#FName#%" cfsqltype="cf_sql_varchar">
            AND
                Last_Name like <cfqueryparam value="%#LName#%" cfsqltype="cf_sql_varchar">
            AND
                Hosp_Name like <cfqueryparam value="%#Hosp#%" cfsqltype="cf_sql_varchar">
            <!---AND 
                Process_Dt >= <cfqueryparam value="#fromProcessDt#" cfsqltype="cf_sql_datetime">
            AND 
                Process_Dt <= <cfqueryparam value="#toProcessDt#" cfsqltype="cf_sql_datetime">
            AND 
                Discharge_Dt >= <cfqueryparam value="#fromdischargeDt#" cfsqltype="cf_sql_datetime">
            AND 
                Discharge_Dt <= <cfqueryparam value="#todischargeDt#" cfsqltype="cf_sql_datetime">--->
            <!---AND 
                Process_Dt between <cfqueryparam value="#fromProcessDt#" cfsqltype="cf_sql_datetime"> and <cfqueryparam value="#toProcessDt#" cfsqltype="cf_sql_datetime">
            AND
                Discharge_Dt between <cfqueryparam value="#fromdischargeDt#" cfsqltype="cf_sql_datetime"> and <cfqueryparam value="#todischargeDt#" cfsqltype="cf_sql_datetime">--->
                <!---AND
                Hosp_Name like <cfqueryparam value="%#BirthDt#%" cfsqltype="cf_sql_varchar">--->
        </cfquery>

        <!---<cfdump var="#HospitalVisits1#">
        <cfabort>--->
    </cftransaction>

Если записи существуют, яотобразит результаты (пример того, что я буду отображать):

<span style="color:red">Process Date(s)</span>:
    <!--- create the struct --->
    <cfset processDtStruct = StructNew()>
    <cfset c1 = 1>  

    <cfloop index="processDt" list="#valuelist(HospitalVisits1.Process_Dt, "|")#" delimiters="|">
        <cfset processDtStruct[processDt] = "" > 
    </cfloop>

    <cfset newProcessList = StructKeyList(processDtStruct)>

    <cfloop index="i" list="#newProcessList#">
        <cfoutput>
            &nbsp;#DateFormat(i,"mm/dd/yyyy")#<cfif c LT listlen(newProcessList)>,</cfif>   <cfset c++>
        </cfoutput>
    </cfloop><br />

Вот где я устанавливаю значение, полученное из пользовательского ввода

<cfif isDefined("form.FromDischargeDt")>
    <cfset fromdischargeDt = DateFormat(form.FromDischargeDt, "yyyy-m-dd") />
<cfelse>
    <cfset fromdischargeDt = "" />
</cfif> 

<cfif isDefined("form.ToDischargeDt")>
    <cfset todischargeDt = DateFormat(form.ToDischargeDt, "yyyy-m-dd") />
<cfelse>
    <cfset todischargeDt = "" />
</cfif> 

<cfif isDefined("form.FromProcessDt")>
    <cfset fromProcessDt = DateFormat(form.FromProcessDt, "yyyy-m-dd") />
<cfelse>
    <cfset fromProcessDt = "" />
</cfif> 

<cfif isDefined("form.ToDProcessDt")>
    <cfset toProcessDt = DateFormat(form.ToDProcessDt, "yyyy-m-dd") />
<cfelse>
    <cfset toProcessDt = "" />
</cfif> 

ВотПример формы, которую я использую, где я получаю диапазон дат:

enter image description here

Вот пример данных:

2]

Любая помощь будет оценена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...