![](/img/trans.png)
[英]ColdFusion cfdump does not show query on Lucee version 5.2.1.9
[英]Migrating coldfusion application to Lucee
我們的服務器正在從Coldfusion更改為Lucee服務器,我的任務是為幾個Web應用程序更新代碼。 我不是Coldfusion的專家,但我經常可以弄清楚周圍的事物,以結束查詢。
我正在轉換的代碼拋出此錯誤: 無法將對象類型[DateTime]強制轉換為類型[Array]的值
我一直在處理所有查詢,並確保輸出正確地CAST,這已解決了大多數問題,但是絆倒我的一小段代碼會拋出上述錯誤。 代碼是:
<cfset summaryStartDate = ArrayMin( qSummaryData["minHours"] ) />
<cfset summaryMaxDate = ArrayMax( qSummaryData["maxHours"] ) />
<cfset summaryEndDate = DateAdd("d", -(DayofWeek(#summaryMaxDate#))+6, #summaryMaxDate# ) />
minHours和maxHours均為DATETIME格式。 我知道在Coldfusion版本中,它們的輸出如下:
summaryStartDate:41204 summaryMaxDate:43465 summaryEndDate:{ts'2019-01-04 00:00:00'}
對我而言,這意味着Coldfusion正在以某種方式進行轉換,而Lucee則不這樣做(或者至少從我的閱讀中)。 該數據庫是mySQL,minHours和maxHours輸出為小時數為00:00:00的日期,以供參考。
我可能缺少明顯的東西,但看不到。
我以“這不是最大的解決辦法”作為開頭,但確實有效。 從andrewdixon的隊列中,我看了一步逐步使用數組(數據不適合該數組),並看了其他方法。
我解決了一個查詢查詢,提取了最小值,然后在cfset中進行了設置。 在最大值之后執行相同的操作。 我的兩個查詢是:
<cfquery name="smallestFigure" dbtype="query">SELECT CAST(MIN(minHours) AS DATETIME) as outputMin FROM qSummaryData;</cfquery>
<cfquery name="largestFigure" dbtype="query">SELECT CAST(MAX(maxHours) AS DATETIME) as outputMax FROM qSummaryData;</cfquery>
我將這些設置為summaryStartDate和summaryMaxDate,以便可以運行此行(在原始帖子中提到):
<cfset summaryEndDate = DateAdd("d", -(DayofWeek(#summaryMaxDate#))+6, #summaryMaxDate# ) />
Shawn提到我不需要#的summaryMaxDate周圍,但是我還沒有進行此更改。 andrewdixon提到使用query.reduce()作為替代方案,我想這將比我做的要簡潔得多,因此,如果有人想出更好的解決方案,請發表答復。
也感謝大家的支持和想法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.