Как получить значение на первый день каждого месяца в mysql?

У меня есть таблица такого типа:

time vol
1652918400 272331.8
1652832000 54849419.5
1652745600 29800101.2
1652659200 25920194.9

И так далее. По факту, на каждый день одного и того же времени у меня есть определенное значение. Помогите пожалуйста сделать такой запрос, который будет мне выдавать все значения за 1-ый день каждого месяца с начала "истории" по 1 день текущего месяца. Для наглядности вот вид финального результата:

time vol
2022-01-01 272331.8
2022-02-01 54849419.5
2022-03-01 29800101.2
2022-04-01 25920194.9

Как перевести из unix времени в обычный формат я знаю, а вот дальше проблема. Я в SQL только начинающий, так что буду признателен за любую помощь)))


Ответы (2 шт):

Автор решения: vegasmoscow

Вам необходимо использовать маску и оператор LIKE. Запрос будет таким SELECT * FROM mytable WHERE date LIKE '____-__-01';, где символ _ означает любой одиночный символ.

Смотрите в тренажёре: https://www.mycompiler.io/view/IJzRtE0mVFD

→ Ссылка
Автор решения: Vitaliy Zlobin

Я бы посоветовал работать с датой как с датой, а не как со строкой - это более правильно с точки зрения производительности(для компа число сравнить проще чем строку) и семантики(так нагляднее для человека):

SELECT * FROM mytable WHERE DAY(date) = 1;
→ Ссылка