我的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"])