Как выбрать данные из таблицы с фиксированной разницей между двумя столбцами в SQL - PullRequest
0 голосов
/ 04 августа 2020

Я хочу запросить таблицу MySQL, в которой есть столбцы «generationUt c» и «Ut c», и я хочу запросить только те данные, для которых разница между «generationUt c» и « Ut c "- один день. Например, мне нужны только данные с generationUt c = 2020-07-21 и Ut c = 2020-07-22, что на один день позже. Но я хочу, чтобы это было для всех доступных дат.

Итак, это как вопрос, связанный с датами в SQL, так и с извлечением данных с определенными условиями в разных столбцах.

Я кое-что пробовал например

SELECT * FROM database
WHERE EXTRACT(DAY FROM (generatedUtc - Utc)) = '1'

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

1 Ответ

0 голосов
/ 04 августа 2020

Вопрос: MySQL -tagged - поэтому

SELECT * 
FROM database
WHERE DATEDIFF(Utc, generatedUtc) = 1

Для этого необходимо, чтобы оба столбца были определены как тип данных DATE. Если это DATETIME или TIMESTAMP, тогда

SELECT * 
FROM database
WHERE DATEDIFF(DATE(Utc), DATE(generatedUtc)) = 1
...