私は、日付値を整数(つまり20121119
)として格納する特定のデータベースを自由に使用できます。レポート表示のためにこれらの値を取得するクエリがいくつかあるので、これらの値をm/d/yyyy
フォーマットに変換する必要があります。
これを行うにはいくつかの方法があります。
- 既存のグローバルUDFを使用して、ディスプレイで変換を実行します。ここでの欠点は、クエリを再利用する場合、表示値を変換するために必要なコードを複製する必要があることです。
- SQLの値を解析して、適切にフォーマットされた値を返します。私はDB2/iSeriesから読んでいますが、これには(私が見つけた限りでは)このための組み込み関数がありません。
結果セットをループし、各値を一度に1つずつ変換します。これは私が現在行っていることですが、より大きなデータセットの場合、パフォーマンスが問題になります。
<cfscript> var i = 1; var _query = ARGUMENTS.query; if ( !Len(Trim(ARGUMENTS.column)) || !ListFindNoCase(_query.ColumnList, ARGUMENTS.column)) return _query; for (i=1; i<=_query.RecordCount; i++) { _query[ARGUMENTS.column][i] = VARIABLES.Library.DateTime.ParseAS400Date( _query[ARGUMENTS.column][i] ); } return _query; </cfscript>
書式設定関数をColdFusionクエリオブジェクトの列全体に適用する簡単で迅速な方法はありますか?