Big Query - Сравнение дат - PullRequest
       3

Big Query - Сравнение дат

0 голосов
/ 06 сентября 2018

Я пытаюсь извлечь из таблицы, созданной мной в BigQuery, в которой много столбцов, одним из которых является Дата.

Тип DATE, и я хочу получить только записи, которые находятся между двумя датами.

Пожалуйста, смотрите ниже мой код.

SELECT ExpakAccounts.Account As Account1, ExpakAccounts.description As Name, collection.Col_Dpt As Col_Dpt, collection.Own_Dpt As Own_Dpt, collection.Service As Service, COUNT(collection.Parcels) AS Cons, SUM(collection.Amount) AS Amount, collection.Filename As Filename, collection.Date AS Date 
FROM `rawdataset.ExPakAccounts2` AS ExpakAccounts 
INNER JOIN `rawdataset.collection_2018` AS Collection ON ExpakAccounts.Account = collection.Account
WHERE ExpakAccounts.Account = collection.Account AND collection.Cat = 100 AND (Col_Dpt <> Own_Dpt) AND (collection.Service = 32 OR collection.Service = 68) AND (DATE(Date) >= '2018-07-30' AND DATE(Date) <= '2018-08-06')
GROUP BY Account1, Name, Col_Dpt, Own_Dpt, Service, Cat, Filename, Date;

Сообщение об ошибке

No matching signature for function DATE for argument types: DATE

1 Ответ

0 голосов
/ 06 сентября 2018

Вы можете использовать Date BETWEEN '2018-07-30' AND '2018-08-06 в своем предложении WHERE. Это вернет строки, для которых дата находится между 2018-07-30 и 2018-08-06.

Кроме того, если ваше поле Date уже имеет тип DATE с использованием DATE(Date), будет выдано следующее сообщение об ошибке No matching signature for function DATE for argument types: DATE. Supported signatures: DATE(TIMESTAMP, [STRING]); DATE(DATETIME); DATE(INT64, INT64, INT64), поскольку функция даты поддерживает только TIMESTAMP или INTEGER.

Вместо этого вы просто будете использовать ваше поле Date как есть (без функции DATE) в предложении where.

Если ваше поле Date имеет тип string, вы можете использовать CAST(Date AS DATE) BETWEEN '2018-07-30' AND '2018-08-06 в своем предложении WHERE.

Здесь - дополнительная информация о стандартных функциях SQL в BigQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...