Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Excel/DAX/Power Query:如何筛选表格以查找从两个日期起24小时内填写的记录_Sql_Excel_Date_Dax_Powerquery - Fatal编程技术网

Sql Excel/DAX/Power Query:如何筛选表格以查找从两个日期起24小时内填写的记录

Sql Excel/DAX/Power Query:如何筛选表格以查找从两个日期起24小时内填写的记录,sql,excel,date,dax,powerquery,Sql,Excel,Date,Dax,Powerquery,我的头被这个弄伤了。甚至不确定这是否可能 我有两个日期栏:“通话日期”和“错误打开时间” 我想筛选此报告,以仅显示错误打开时间在从调用时间的日期起24小时内的记录 例如: 如果错误打开时间='11/6/2016 1:17:00 PM'和调用日期='11/6/2016 12:00:00 AM',则此记录应显示在筛选器中,因为错误打开时间在24小时窗口内 如果错误打开时间='12/11/2016 12:35:00 AM'和调用日期='12/10/2016 12:00:00 AM',则此记录不应显示在

我的头被这个弄伤了。甚至不确定这是否可能

我有两个日期栏:“通话日期”和“错误打开时间”

我想筛选此报告,以仅显示错误打开时间在从调用时间的日期起24小时内的记录

例如:

如果错误打开时间='11/6/2016 1:17:00 PM'和调用日期='11/6/2016 12:00:00 AM',则此记录应显示在筛选器中,因为错误打开时间在24小时窗口内

如果错误打开时间='12/11/2016 12:35:00 AM'和调用日期='12/10/2016 12:00:00 AM',则此记录不应显示在筛选器中,因为错误打开时间不在24小时窗口内

此外,如果错误\u打开\u时间日期早于\u调用日期的日期,则应将其过滤掉,因为它不是必需的


我希望这是有道理的。谢谢你的帮助

您可以在Power Query中同时减去日期,这将给您一个持续时间。如果调用列的
Error\u Open\u Time
Date\u是
Date
DateTime
类型,则应执行以下操作:

  • 添加一个自定义列,其公式为
    [Error\u Open\u Time]-[Date\u of\u Call]
  • 筛选24小时周期之间的自定义列。您可以执行“大于或等于”
    -1.00:00:00
    和“小于或等于”
    1.00:00:00
    (介于1天之间)
  • 删除自定义列
  • 步骤应如下所示:

    #“Added Custom”=Table.AddColumn(#“Changed Type”、“Custom”,每个[Error_Open_Time]-[Date_of_Call]),
    
    #“筛选行”=表格。选择行(#“添加自定义”,每个[自定义]>=#持续时间(-1,0,0,0)和[自定义]在表格中创建一个计算列,以确定要筛选的记录

    =
    IF (
        'Table'[Date_of_Call]
            = DATE ( YEAR ( 'Table'[Error_Open_Time] ), MONTH ( 'Table'[Error_Open_Time] ), DAY ( 'Table'[Error_Open_Time] ) ),
        1,
        0
    )
    
    然后在报告中添加一个过滤器,该过滤器仅使用计算列中等于1的值


    如果这有帮助,请告诉我。

    对于PowerQuery,我将在一行中完成,无需添加列:

    FilterRecords = Table.SelectRows(Source, each ([Error_Open_Time] > [Date_of_Call]) and ([Date_of_Call] + #duration(1,0,0,0) >= [Error_Open_Time])) 
    
    这种变体也可能:

    FilterRecords = Table.SelectRows(Source, each ([Error_Open_Time] > [Date_of_Call]) and (Date.AddDays([Date_of_Call], 1) >= [Error_Open_Time])) 
    
    如果您需要SQL,那么使用

    SELECT [Date_of_Call], [Error_Open_Time]
    FROM Table
    WHERE [Error_Open_Time] > [Date_of_Call] 
          AND 
          (DateAdd(day, 1, [Date_of_Call]) >= [Error_Open_Time])
    

    Date_of _CallColumn是否包含时间信息?我不认为该方法有效,但令人惊讶的是它确实有效!得到了与使用Alejandro方法相同的结果。我认为它有效,因为Date_of _CallColumn日期都使用12:00:00AM作为时间戳。如果时间戳不同,那么我认为该方法无效。@NickMomin,是的,因为其中,我在评论中问过你,Date_of_Call是否包含时间信息。我认为你使用的是12:00:00,所以认为它不包含时间信息。啊,是的,这很有道理。我想我会包括为什么/什么时候如果有人在类似情况下寻求解决方案,它将不起作用。谢谢:)工作得很有魅力!非常感谢你!!