首页 > 其他分享 >Power Query M获取上周、上上周、本月、去年同期

Power Query M获取上周、上上周、本月、去年同期

时间:2024-07-29 17:50:17浏览次数:7  
标签:TodayDate Power AddDays DateTime 日期 上周 Date Query

在Power Query(也称为M语言)中,你可以使用内置的日期和时间函数来获取特定的日期。以下是如何获取今天的日期、昨天的日期、上周起始到结束的日期(不含今天),以及上上周起始和结束的日期(不含今天和上周)的示例代码。

  1. 获取今天的日期
    m
    Today = DateTime.LocalNow() // 这将返回一个日期时间值,如果只想要日期部分,可以使用 DateTime.Date(DateTime.LocalNow())
    但通常,对于仅需要日期的场景,我们会这样做:

m
TodayDate = DateTime.Date(DateTime.LocalNow())
2. 获取昨天的日期
m
YesterdayDate = Date.AddDays(TodayDate, -1)
3. 获取上周起始到结束的日期(不含今天)
首先,我们需要找到上周的第一天(通常是周日,但取决于你的定义)。然后,我们将找到上周的最后一天(周六)。

m
// 假设上周的第一天是周日
StartOfLastWeek = Date.StartOfWeek(Date.AddDays(TodayDate, -7), Day.Sunday)
EndOfLastWeek = Date.AddDays(StartOfLastWeek, 6) // 上周六
注意:Date.StartOfWeek 函数的第二个参数允许你指定一周的第一天是星期几。在这个例子中,我使用了 Day.Sunday 作为参数,但你可以根据需要更改为 Day.Monday 或其他。

  1. 获取上上周起始和结束的日期(不含今天和上周)
    这类似于获取上周的日期,但我们需要再往前推一周。

m
// 上上周的第一天(假设是周日)
StartOfPreviousWeek = Date.StartOfWeek(Date.AddDays(TodayDate, -14), Day.Sunday)
EndOfPreviousWeek = Date.AddDays(StartOfPreviousWeek, 6) // 上上周六
完整示例
将这些片段组合成一个查询可能看起来像这样(注意,这只是一个示例,并不是一个可以直接在Power Query编辑器中运行的完整查询):

m
let
TodayDate = DateTime.Date(DateTime.LocalNow()),
YesterdayDate = Date.AddDays(TodayDate, -1),
StartOfLastWeek = Date.StartOfWeek(Date.AddDays(TodayDate, -7), Day.Sunday),
EndOfLastWeek = Date.AddDays(StartOfLastWeek, 6),
StartOfPreviousWeek = Date.StartOfWeek(Date.AddDays(TodayDate, -14), Day.Sunday),
EndOfPreviousWeek = Date.AddDays(StartOfPreviousWeek, 6)
in
// 这里你可以返回一个表格或仅仅是你需要的日期值
// 例如,返回一个包含这些日期的表格
#table(
{"DateType", "DateValue"},
{
{"Today", TodayDate},
{"Yesterday", YesterdayDate},
{"StartOfLastWeek", StartOfLastWeek},
{"EndOfLastWeek", EndOfLastWeek},
{"StartOfPreviousWeek", StartOfPreviousWeek},
{"EndOfPreviousWeek", EndOfPreviousWeek}
}
)
请注意,上面的#table函数示例仅用于说明目的,并非Power Query的标准部分。在Power Query编辑器中,你通常会通过“添加自定义列”或“添加到新查询”并编写适当的M代码来构建和返回表格。上面的#table示例旨在展示如何将这些日期组织成一个逻辑上的表格结构。在实际的Power Query查询中,你可能会将这些值用作参数或将其直接插入到现有的数据转换流程中。

标签:TodayDate,Power,AddDays,DateTime,日期,上周,Date,Query
From: https://www.cnblogs.com/laraveler/p/18330674

相关文章

  • 使用 powershell 或 python 从网页列出公司名称
    我希望使用PowerShell或python仅列出URL中的公司名称:https://www.moneycontrol.com/markets/earnings/results-calendar/?activeDate=2024-07-29下面是我的python脚本用于获取网页的结构:importrequestsfrombs4importBeautifulSoup#URLo......
  • 上周热点回顾(7.22-7.28)
    热点随笔:· 周边上新,T恤上星:博客园T恤幸运闪系列,上架预售,上照预览 (博客园团队)· 强烈推荐!!!阿里旗下10款顶级开源项目 (程序员晓凡)· 给园子的会员送送优惠,和你的数据库聊聊天:会员权益「Chat2DB特惠」上线 (博客园团队)· 深入浅出分析最近火热的Mem0个性化AI记忆层 (J......
  • 为什么我的 HTTP 请求代码需要在 PowerShell 上运行一次才能在 Python 上正常工作?
    下面的代码只是一个演示,我有一个http函数来获取新的'log-uid'和'ASP.NET_SessionId',然后将它们放入cookie中,但是如果我直接运行python代码,响应是'{data:不登录}'cookies={'log-uid':'**newlog-uidexample**','ASP.NET_SessionId':......
  • jQuery入门(一)
    一、JQuery介绍-jQuery是一个JavaScript库。-所谓的库,就是一个JS文件,里面封装了很多预定义的函数,比如获取元素,执行隐藏、移动等,目的就是在使用时直接调用,不需要再重复定义,这样就可以极大地简化了JavaScript编程。-jQuery官网:https://www.jquery.com二、JQue......
  • Power Automate:如何执行 Anaconda 环境
    我想使用Anaconda环境执行py文件。我无法打开Powershell提示符来发送命令行。您有建议吗?解决方案1不起作用:使用命令执行powershell流程:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe-ExecutionPolicyByPass-NoExit-Command"&'C:\Users\andre\ana......
  • Microsoft.PowerShell.Commands.Utility.Resources.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个Microsoft.PowerShell.Commands.Utility.Res......
  • 如何让SQL Server像MySQL一样拥有慢查询日志(Slow Query Log慢日志)
    如何让SQLServer像MySQL一样拥有慢查询日志(SlowQueryLog慢日志)SQLServer一直以来被人诟病的一个问题是缺少了像MySQL的慢日志功能,程序员和运维无法知道数据库过去历史的慢查询语句。因为SQLServer默认是不捕获过去历史的长时间阻塞的SQL语句,导致大家都认为SQLServer没有历......
  • 【0299】Postgres内核之 INSERT INTO 原始解析树 转 Query 树 (3)
    相关文章:【0297】Postgres内核之INSERTINTO原始解析树转Query树(1)【0298】Postgres内核之INSERTINTO原始解析树转Query树(2)1.opentable(RangeVar指定)在完成了由函数setup_parser_errposition_callback()完成的解析器错误位置报告回调函数的注册后,接下来通......
  • Postgresql & PgAdmin powered by compose
    Postgresql&PgAdminpoweredbycomposehttps://github.com/fanqingsong/compose-postgres/blob/master/docker-compose.ymlQuickStartCloneordownloadthisrepositoryGoinsideofdirectory,cdcompose-postgresRunthiscommanddocker-composeup-d......
  • 如何使用 LangChain 查看 MultiQueryRetriever 管道中的最终提示?
    我目前正在使用LangChain库开展一个项目,我想从向量数据库中检索相关文档,然后使用OllamaLLM根据这些文档生成答案。以下是我当前的实现:importlogginglogging.basicConfig()logging.getLogger("langchain.retrievers.multi_query").setLevel(logging.INFO)#Defin......