前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power Automate从Excel获取日期如何格式化

Power Automate从Excel获取日期如何格式化

作者头像
陈学谦
发布2022-02-17 10:20:10
4.4K0
发布2022-02-17 10:20:10
举报
文章被收录于专栏:学谦数据运营

最近在做一个项目,用到了Power Automate从excel online中获取一个表提交到流数据集中。

原始数据表:

在读取日期列的时候,它总是返回错误:

Error parsing request for dataset sobe_wowvirtualserver|69bcf21f-xxxxx-46ac-xxxx-c8b799xxx34a: Error encountered by JSON parser when reading input data for column '<pi>报修时间</pi>': <pi>Could not convert string to DateTime: 44570.8943287037. Path '[0].报修时间', line 6, position 30.</pi>

错题点:

因为设置流数据集的日期列为时间格式,而从excel获得的日期却是数字格式的,因此报错。

这显然不是我们想要的。我们期望的是:

经过一番研究与参考,终于搞清楚了2件事:

  • excel里的日期是以数字格式存储的,44570的意思就是从1900年1月1日算起的第44570天(以前真没当回事,因为python和其他语言都是可以将其直接转化为标准时间的,然而PA里没有直接对标的公式)
  • PA的表达式函数都能实现什么样的功能,看了个眼熟,至少能实现什么,不能实现什么,大概有了个数

所以对于该数字的处理也就有了思路:

44570.8943读取的时候是个字符串,带着小数点

  • 先用indexOf获取小数点的位置
  • 用substring将数字从头开始截取到小数点之前
  • 以上还是个字符串,所以用int将其变为整数,也就是天数
  • 使用addDays从1899-12-30开始数天数,数到2021-01-09

代码:

代码语言:javascript
复制
addDays(
  '1899-12-30', int(substring(string(items('Apply_to_each')?['开始时间']), 0,
  indexOf(string(items('Apply_to_each')?['开始时间']),'.'))), 'yyyy-MM-dd')

结果:

你问我为啥不是从1899-12-31开始,而是从1899-12-30开始?

我也不知道,因为如果从1899-12-31开始算,得到的结果是1月10日,结果多了一天。好像是因为有个bug默认1900年是闰年?无所谓了。

如果我们想得到更准确的时间,就得使用addSeconds这个表达式了:

让人无法看懂的表达式:

代码语言:javascript
复制
addSeconds( 
  '1899-12-31 00:00:00',
  int(
    string(
      mul(
        float(
          items('Apply_to_each')?['开始时间'])
          ,86400)
      )
     )
    )

步骤:

  • float将字符串转为浮点数
  • mul表示两个数相乘计算秒数(mdzz,lz两数相乘走到哪都是a*b,到你这里还得mul(a,b)?)
  • string需要将这个运算结果转为字符串形式,为啥呢?
  • 因为int只能接收字符串作为参数,wtf?lz走到哪都可以将浮点用int直接转为整数

哎,实在不想说啥:

int 将整数的字符串版本转换为实际整数。 int('<value>') 举例:int('10') https://docs.microsoft.com/zh-cn/azure/logic-apps/workflow-definition-language-functions-reference#int

运行结果:

成功~!当然,其实写法有很多,自己可以摸索。

总之:

经过千辛万苦,可算是搞成功了,正常进入了流数据集:

而经过较长时间的探索,我只能说,PowerAutomate所谓的被称为“低代码”,目前来看,只是在某些方面合格吧。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档