如何使用电子表格格式列将列格式设置为日期?

发布于 2025-01-08 13:11:34 字数 285 浏览 1 评论 0原文

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

1988-09-19 00:00:00.0

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

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

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

I'm using cfspreadsheet to generate an excel sheet of data. There are a couple of columns that are dates, and are displaying like this:

1988-09-19 00:00:00.0

I'd like to format them to display in m/d/yyyy format. I tried using spreadsheetFormatColumn:

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

But it doesn't change anything. How can I format the column using coldfusion?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

日记撕了你也走了 2025-01-15 13:11:35

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

浮点数应表示自纪元以来的天数,我的研究发现 Excel 将 1 视为 1/1/1900 00:00:001/1/1900 00:00:00.然而,还有其他奇怪的结果 也有人说,有时这个时代会比那个时代晚一两天。

我发现在 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表示,可以放入你自己的日期列的名称)

It may not be a bug. The value you put into a cell, using the spreadsheet functions, needs to be a float and not any kind of date string like "12/25/2012".

The float should represent the number of days since the epoch, which my research found that Excel treats 1 as 1/1/1900 00:00:00. However, there were other odd results out there as well that said that sometimes the epoch was a day or two off of that.

The method I found to represent this in Oracle is:

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

(Note that there are two places, represented by inv_date, to put in the name of your own date column)

梦明 2025-01-15 13:11:34

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

As Leigh mentioned in a comment, this seems to be a coldfusion bug. I got around this by converting the dates to varchars on the sql server side (using convert(varchar, myDateField, 101)).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文