【问题标题】:How to change date format while exporting as a csv file?导出为 csv 文件时如何更改日期格式?
【发布时间】:2021-03-12 01:54:34
【问题描述】:

我使用下面的代码并且它工作正常。我不想更改临时表字段(dActiveDate)类型,但请帮我更改日期格式。

注意 - 日期格式可以由用户更改。它可以是 YY/MM/DD 或 DD/MM/YYYY 或 MM/DD/YY 等等...

DEFINE TEMP-TABLE tt_data NO-UNDO
   FIELD cName AS CHARACTER
   FIELD dActiveDate  AS DATE.

   CREATE tt_data.
   ASSIGN
     tt_data.cName = "David"
     dActiveDate     = TODAY
     .
   OUTPUT TO value("C:\Users\ast\Documents\QRF\data.csv").
   PUT  UNFORMATTED "Name,Activedate" SKIP.
   FOR EACH tt_data NO-LOCK:
     EXPORT DELIMITER ","  tt_data. /* There are more than 15 fields available so using export delimeter helps to have less lines of code*/ 
   END.
   OUTPUT CLOSE.

【问题讨论】:

    标签: openedge progress-4gl


    【解决方案1】:

    作为这个问题的“第二部分”:How to change date format based on variable initial value? 为什么不建立在那里的答案?

    将 dateformat 部分包装在函数/过程/方法中,并在 EXPORT 语句中调用它。唯一需要更改的是指定每个字段,而不仅仅是临时表。

     EXPORT DELIMITER ","  
        dateformat(tt_data.dactivedate, cDateFormat)
        tt_data.cName
    

    这假设有一个名为 dateformat 的函数,它接受日期和格式并返回一个带有格式化日期的字符串(如上一个问题)。

    【讨论】:

    • 逻辑好,如果我将它导出为 txt 文件,它工作正常,但如果我将它导出为 csv 文件,日期格式不会改变
    • @Thiru 这可能取决于 Excel(如果它是您打开文件的位置)。
    【解决方案2】:

    “等等……”需要指定。根据规范,您可能不得不求助于 Jensd 的答案等自定义函数。

    如果你可以限制允许的格式,你可以使用正常的处理方式:

    session:date-format = "ymd" / "mdy" / "dmy". 
    session:year-offset = 1 / 1950. // for four vs two digit year
    

    您如何填充这两个变量可以按照与其他问题类似的方式完成。

    您可能需要在 finally 块中将这些会话属性重置为其初始状态。

    【讨论】:

      猜你喜欢
      • 2022-07-20
      • 2013-03-30
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 2017-08-27
      • 1970-01-01
      相关资源
      最近更新 更多