【问题标题】:Date format issue while uploading and saving the excel sheet into db using coldfusion cfspreadsheet使用coldfusion cfspreadsheet将excel表上传并保存到db时出现日期格式问题
【发布时间】:2016-03-13 12:39:52
【问题描述】:

我使用 cfspreadsheet 通过 excel 表上传和解析,并将所有值插入数据库,问题是 [我的 excel 表的日期范围从 2016 年 1 月 2 日到 2016 年 2 月 29 日,从 1/2 /16 到 12/2/2016 它在 excelsheet 中右对齐,其余为左对齐...]。该值被插入到数据库中,但我无法使用数据库中的 where 条件从 1-12 中获取值。我尝试在我的 excel 表中手动更改日期格式。发生了什么

..02 January 2016
02 February 2016
.
.
02 December 2016
13/02/2016
14/02/2016
.
.

截至 2016 年 2 月 12 日[mm/dd/yy] 将 dd 显示为月份符号,从 13/02/2016[dd/mm/yyy] 开始正常显示,我尝试了所有格式选项,我需要在代码中实现它。我认为在下载数据本身时,日期的格式不正确,我尝试使用不同的 excel 表但没有用......我尝试使用冷融合代码将这些日期转换为特定格式,但它对我不起作用。 .

<cfset sheet = spreadSheetRead("D:\file123\final1231.xls")>
<cfset SpreadSheetFormatColumn(sheet,{dataFormat="yyyy-mm-dd"},3)>
<cfset SpreadSheetWrite(sheet,"D:\file123\final1232",true)>

任何人都可以帮助我吗?

【问题讨论】:

    标签: coldfusion-10 import-from-excel


    【解决方案1】:

    在我看来,您的 excel 中的语言环境设置为“英语(美国)”,这就是为什么您的 excel 将前 12 行的值视为有效日期,但从第 13 行开始数据无效,因此 excel将其视为字符串(因此左对齐)。尝试手动将 excel 区域设置更改为“英语(印度)”或类似名称,您将看到数据正确对齐。

    Cold Fusion 内部日期时间格式也是美式 (mm/dd/yyyy),默认情况下会将日期和时间解释为美式格式。我认为在插入数据时,您可以使用以下内容创建日期,以确保插入了哪些数据:

    #createDate(listLast(dt,"/"),listFirst(listRest(dt,"/"),"/"),listFirst(dt,"/"))#
    

    这里的 dt 是您要插入的数据列。您可能需要根据数据进行一些检查,以避免任何运行时错误。

    【讨论】:

    • @PradeepSubramani 您在其中插入日期值的表列类型是什么?您还可以分享插入语句的摘录吗?
    • 它是日期类型,我也尝试将其更改为 varchar,下面是我尝试插入数据库的代码。
    猜你喜欢
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 2014-05-16
    • 2012-03-09
    • 1970-01-01
    • 2013-04-10
    • 2023-04-09
    • 2011-09-28
    相关资源
    最近更新 更多