Запрос листов Google возвращает неверную дату - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть запрос, по которому я пытаюсь получить события следующих 14 дней и события предыдущих 14 дней

По какой-то причине я добавляю очень много дат, которые в прошлом или в будущем

= QUERY (Лист1! A2: H200, «выберите A, B, G, где dateDiff (now (), G) <14 и G не равно нулю») </p>

ABC 1 15 Feb 2019 ABC 1 1 Nov 2018 DFG 1 11 Nov 2018 ABC 1 2 Nov 2018

Следующие 14 дней

= QUERY (Лист1! A: G, "выберите A, B, G, где dateDiff (now (), G)> 14 и G не равно нулю")

   ABC 1    20 Oct 2018
   ABC 1    20 Oct 2018

Я что-то не так делаю с запросом

https://docs.google.com/spreadsheets/d/1WI-FS0XFGi09d2wO005S3kOV_L2s9eR3ILxST6I1nVU/edit?usp=sharing

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Если вы хотите сделать все, используя datediff, это будет

=query(A:C,"select A,B,C where datediff(C,now())<14 and datediff(C,now())>0")

для дат в следующие две недели (четырнадцать ночей или 2 недели) и

=query(A:C,"select A,B,C where datediff(now(),C)<14 and datediff(now(),C)>0")

для предыдущих двух недель.

Возможно, вы захотите поставить <= и> =, в зависимости от того, хотите ли вы включить сегодняшнюю дату и дату за 14 дней до / после сегодняшнего дня.

enter image description here

0 голосов
/ 12 ноября 2018

Когда вы используете меньше 14, даты будущего также включаются, потому что datediff возвращает отрицательное число. Итак, добавьте еще одно условие для исключения будущих дат, например:

=QUERY(A:C,"select A,B,C where dateDiff(now(), C) <14 and C<now() and C is not null")
...