У меня есть следующий запрос, который извлекает информацию о пользователе на основе имени пользователя, имени больницы, даты процесса и даты выписки.Однако части запроса «Дата обработки» и «Дата выгрузки» не работают должным образом.Оба типа 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>
#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](https://i.stack.imgur.com/Rayz0.png)
Вот пример данных:
![2]](https://i.stack.imgur.com/7THDt.png)
Любая помощь будет оценена