簡體   English   中英

將Coldfusion應用程序遷移到Lucee

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM