如何使用spreadsheetFormatColumn将列格式化为日期?

时间:2012-02-22 20:30:28

标签: excel date coldfusion spreadsheet

我正在使用cfspreadsheet生成excel数据表。有几列是日期,显示如下:

1988-09-19 00:00:00.0

我想将它们格式化为以m / d / yyyy格式显示。我尝试使用spreadsheetFormatColumn:

<cfset spreadsheetFormatColumn(s, {dataformat="m/d/yyyy"}, 8) />

但它没有改变任何东西。如何使用coldfusion格式化列?

2 个答案:

答案 0 :(得分:1)

正如Leigh在评论中提到的,这似乎是一个冷冻错误。我通过将日期转换为sql server端的varchars(使用convert(varchar, myDateField, 101))解决了这个问题。

答案 1 :(得分:0)

这可能不是一个错误。使用电子表格函数放入单元格的值必须是float,而不是任何类型的日期字符串,如“12/25/2012”。

浮点数应代表自纪元以来的天数,我的研究发现Excel将1视为1/1/1900 00:00:00。然而,也有other odd results out there说,有时候这个时代是一天或两天。

我找到to represent this in Oracle的方法是:

   SELECT ( TRUNC(inv_date) - TO_DATE('1899-12-30', 'yyyy-mm-dd') ) 
          +  TO_NUMBER(TO_CHAR(inv_date, 'SSSSS')) / 86400 AS InvcDateAsFloat

(请注意,有两个地方,由inv_date表示,以放入您自己的日期列的名称)