我可以随意使用某个数据库,它将日期值存储为整数(即20121119
)。我有几个查询可以检索这些值以进行报告显示,因此我需要将这些值转换为m/d/yyyy
格式。
我看到了几种方法来做到这一点:
- 使用现有的全局 UDF 在显示中进行转换。这里的缺点是,如果重新使用查询,我需要复制转换显示值所需的代码。
- 解析 SQL 中的值以返回格式正确的值。我正在阅读 DB2/iSeries,它没有(据我发现)为此提供内置函数。
循环遍历结果集并一次转换每个值。这是我目前正在做的事情,但是对于更大的数据集,性能是一个问题:
<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 查询对象中的整个列?