我有一个非常大的查询,从3个不同的页面调用。 我没有在所有3个cfm文件中编写相同的查询,而是试图找到另一种方法来将查询(以及#variable(s)#)保存在Query.cfm文件中。
Query.cfm示例:
SELECT *
FROM A
WHERE TRADE_DATE BETWEEN to_date('#f_startDate#','dd/mm/yyyy') AND to_date('#f_endDate#','dd/mm/yyyy')
变量:#f_startDate#和#f_endDate#
然后我读取文件内容,将其存储在变量中,并将#variable(s)#替换为值,以便从每个页面运行该函数。
调用页面(到目前为止无效的代码):
<cffile action = "read" file = "#ExpandPath( './Query.cfm')#" variable = "Query">
<cfset Query = #ReplaceList(Query,"#f_startDate#,#f_endDate#", "01/01/2000,01/01/2002")#>
<cfquery name="Q_DailyPrice" datasource="#f_datasource#">
#PreserveSingleQuotes(Query)#
</cfquery>
如何将变量值设置为字符串?
有关每页的更多详情:
返回要加载图表的查询的JSON
用于在xls中生成查询数据
进一步用于生成查询数据(QoQ)的子集以创建表格。
数据库:Oracle
答案 0 :(得分:2)
您的选择包括:
也可能有其他选择。我建议看看我建议的三个,并确定哪一个最符合你的需求。
无论使用哪种方法,ColdFusion都有一个parsedatetime函数,可以将字符串转换为日期对象。使用这些可能比oracle的to_date函数更快。你必须测试看看。无论如何,出于各种原因使用cfqueryparameter。
另外,小心使用oracle之间。其日期字段包括时间组件。如果您的任何记录中有一个记录,则使用
更安全where trade_date >= YourStartDate
and trade_date < TheDayAfterYourEndDate