在PowerQuery API请求中将日期值用作URL参数时重新格式化日期值



我的Excel表格中有两个日期,格式如下:"dd-mm-yyyy"这些日期需要作为URL查询参数发送到API端点,以便使用PowerQuery获取一些数据。但是,API端点不接受这种格式的日期。因此,我需要将它们转换为格式"mm-dd-yyyy"而不是让它工作

为了从表中获取值,我使用以下代码:

let GetNamedRange=(NamedRange) =>

let
name = Excel.CurrentWorkbook(){[Name=NamedRange]}[Content],
value = name{0}[Column1]
in
value
in
GetNamedRange

在我的GET请求中插入URL查询参数时,将调用这个名为"getvalue"的函数:

Csv.Document(Web.Contents("my.api/leave/leavecsv", [Query = [periodStart = GetValue("periodStart"), periodEnd = GetValue("periodEnd"), department = GetValue("department")]]),[Delimiter=";", Columns=14, Encoding=1252, QuoteStyle=QuoteStyle.None])

目前我的日期单元格是文本格式。我尝试使用Date.FromText(…)来格式化日期,但我得到一个错误,说日期时间格式无效。

https://learn.microsoft.com/en-us/powerquery-m/date-fromtext

在使用PowerQuery将日期值插入URL查询参数之前,我如何正确地格式化它们?

确保您的日期是真实日期并设置为type date。那么你可以使用Date.ToText函数:

let
theDate = #date(2022,12,7),
output = Date.ToText(theDate,"MM-dd-yyyy")
in
output

如果,出于某种原因,您必须将日期维护为文本字符串(我想知道为什么,如果是这种情况),您可以首先将它们转换为"real"日期,然后创建字符串:

let
theDate = "13-12-2022",
output = Date.ToText(Date.FromText(theDate, "en-150"),"MM-dd-yyyy")
in
output

确保传入区域性和格式。例如

Date.FromText([Column1], [Format="dd-MM-yyyy", Culture="en-UK"])

最新更新