【问题标题】:Formatting Date(YY:MM:DD:Time) in Excel在 Excel 中格式化日期(YY:MM:DD:Time)
【发布时间】:2013-10-21 12:48:30
【问题描述】:

我有一个带有日期列的 excel 文件,但我想将日期列转换为

YY/MM/DD/时间

我已经搜索了 2 个小时,还没有结果。

这是我的数据:

来源数据:http://i.stack.imgur.com/75zbS.jpg

预期输出: YY/MM/DD/时间

有人可以帮我怎么做吗?我想将它插入到 postgresql 中,并且我想将所有内容更改为兼容的日期格式。

编辑:我已尝试右键单击 -> 格式化单元格 -> 日期,但它没有改变任何东西!

谢谢

【问题讨论】:

  • 首先使用文本到列将列设置为日期,然后根据需要设置格式。

标签: excel postgresql date csv


【解决方案1】:

您可以使用此方法并将日期和时间拆分为单独的单元格:

=DATE((LEFT(A1,4)),(MID(A1,5,2)),MID(A1,7,2))

=TIME(MID(A1,10,2),(MID(A1,12,2)),0)

一旦您的日期值采用 Excel 可以识别的格式,您就可以将格式更改为您想要的任何格式。

或者,如果您不希望将值设为可识别的日期格式,则可以像这样获得所需的格式(会给您一个如下所示的字符串:YY/MM/DD/Time):

=MID(A1,3,2)&"/"&MID(A1,5,2)&"/"&MID(A1,7,2)&"/"&MID(A1,10,4)

【讨论】:

    【解决方案2】:

    ISO 8601 format would be YYYY-MM-DD H24:MI:SS.

    但是您可以通过设置 datestyle 设置来设置 Postgres 接受各种日期样式。你可以这样做globally in postgresql.conf 或临时为你的会话。

    SET datestyle = SQL, DMY
    

    对于更奇特的格式,您可以创建一个临时临时表,COPYINSERT 从那里到您的目标表。其中,你可以使用to_timestamp()

    SELECT to_timestamp('13/10/14/17:33', 'YY/MM/DD/hh24:mi')
    

    更多信息和示例代码在这些相关答案中:
    Replacing whitespace with sed in a CSV (to use w/ postgres copy command)
    How to bulk insert only new rows in PostreSQL

    【讨论】:

    • =TEXT(A1,”yyyy-mm-ddThh:MM:ss”) 是实际的 iso 格式(+/- 小数秒和时区)。显然 postgress 不能被 T 打扰,所以 =TEXT(A1,”yyyy-mm-dd hh:MM:ss”)
    • @DirkBester:它是 'YYYY-MM-DD HH24:MI:SS'。大小写与这些部分无关。 'MM' 在 Postgres 中是月份。 'HH' 在 Postgres 中是 12 小时的时间。 ISO 8601 允许通过双方协议省略“T”字符。
    【解决方案3】:

    您将不得不使用固定解析将日期解析为四列。 然后以您想要的任何方式重新组装列。 只是 Google 修复了 excel 解析列。

    【讨论】:

      猜你喜欢
      • 2014-12-07
      • 2018-01-03
      • 2022-07-21
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多