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

yi0zb3m4  于 2022-12-14  发布在  其他
关注(0)|答案(2)|浏览(171)

我的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

这个函数称为“GetValue”,在GET请求中插入URL查询参数时调用:

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查询参数插入之前,如何正确地设置日期值的格式?

nom7f22z

nom7f22z1#

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

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

如果出于某种原因,您必须将日期保存为文本字符串(如果是这样的话,我想知道原因),您可以先将它们转换为“真实的的”日期,然后创建字符串:

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

flvtvl502#

确保传递了区域性和格式。

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

相关问题