我正在使用cfspreadsheet生成excel数据表。有几列是日期,显示如下:
1988-09-19 00:00:00.0
我想将它们格式化为以m / d / yyyy格式显示。我尝试使用spreadsheetFormatColumn:
<cfset spreadsheetFormatColumn(s, {dataformat="m/d/yyyy"}, 8) />
但它没有改变任何东西。如何使用coldfusion格式化列?
答案 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
表示,以放入您自己的日期列的名称)