我正在爲具有DateAdded(timestamp)列的MySQL DB中的100條記錄創建數據庫。Coldfusion,輸出按日期分組,今天,昨天,本週等分組的SQL結果
我想找到一種智能的方式來顯示Coldfusion中的記錄,如下所示,無需多次觸擊數據庫。
今天: - 記錄..... 昨日: - 記錄..... 本週早些時候: - 記錄..... 本月初: - 記錄.... 上一個: - 記錄.....
感謝您關於如何在ColdFusion中巧妙完成這個想法。
我正在爲具有DateAdded(timestamp)列的MySQL DB中的100條記錄創建數據庫。Coldfusion,輸出按日期分組,今天,昨天,本週等分組的SQL結果
我想找到一種智能的方式來顯示Coldfusion中的記錄,如下所示,無需多次觸擊數據庫。
今天: - 記錄..... 昨日: - 記錄..... 本週早些時候: - 記錄..... 本月初: - 記錄.... 上一個: - 記錄.....
感謝您關於如何在ColdFusion中巧妙完成這個想法。
查詢的查詢? - http://livedocs.adobe.com/coldfusion/8/htmldocs/using_recordsets_3.html#1157970
<h1>Today:</h1>
<cfquery name="todayRecords" dbtype="query">
select *
from originalQuery
where DateAdded = #createODBCDate(year(now()), month(now()), day(now()))#
</CFQUERY>
<cfdump var="#todayRecords#">
您可能需要使用SQL BETWEEN
操作。請參閱:http://livedocs.adobe.com/coldfusion/8/htmldocs/using_recordsets_7.html
您也可以使用<cfqueryparam>
標記。請參閱:http://livedocs.adobe.com/coldfusion/8/htmldocs/Tags_p-q_18.html#1102474
查詢查詢可能不是最有效的,但在我看來,它是最簡潔的方式來表示您的意圖,它只是起作用。
多個數據庫調用將在大多數應用
一個相當微不足道的成本,但是,這都可以在一個呼叫來完成,如果你selet的所有記錄,以便按時間倒序。
結束當前部分時,定時開關(當它成爲超過1天,早於2天后,年齡超過8天,等)
基本上你會用DateCompare功能CF來使用DateAdd比較到部分的截止點。一些僞代碼:
而DATEADD <明天 打印記錄
而DATEADD < 1個星期前 打印本週戰績
而DATEADD < 1個月前 打印記錄
如何在Coldfusion中優雅地切換? – AnApprentice 2010-01-01 01:09:28
您可以通過保留一個跟蹤您所在部分的變量來製作「開關」。當該部分不再與「LastSection」匹配時,創建下一個標題。 – 2010-01-01 01:13:32
Neil你能否在CF中提供一個示例來說明循環如何工作? – AnApprentice 2010-01-01 01:15:58
您必須從SQL端開始,可以是Store Procedure或User Defined函數以將Today/Yesterday/etc標籤添加到每條記錄。
也許:
Select a, b, myFunction(DateColumn) as GroupLabel
From myTable Order By GroupLabel
如果myFunction的發生日期值,並返回今天/昨天的/ etc
爲什麼這會降低投票率? – 2010-01-01 01:23:29
這是一個很好的方法,也適用於直接針對數據庫設計的任何即席報告。 – Antony 2010-01-01 06:47:54
我同意尼爾。如果是我,我會在存儲過程中完成所有操作,然後讓數據庫手持CF輸出的最終結果。
如果該列確實是一個時間戳,並且包含日期和時間,則直接相等比較將不起作用。以範圍檢查(或截斷的時間)將需要 WHERE DateAdded <=#TodayAtMidnight#AND DateAdded <#TomorrowAtMidnight# – Leigh 2010-01-01 21:50:20
編輯功能似乎並不奏效。更正: WHERE DateAdded> =#TodayAtMidnight#AND Date Added <#TomorrowAtMidnight# – Leigh 2010-01-01 21:56:27
@Leigh,是的,你可以使用BETWEEN – Henry 2010-01-04 07:23:08