Как получить значение на первый день каждого месяца в 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 шт):
Вам необходимо использовать маску и оператор LIKE. Запрос будет таким SELECT * FROM mytable WHERE date LIKE '____-__-01';, где символ _ означает любой одиночный символ.
Смотрите в тренажёре: https://www.mycompiler.io/view/IJzRtE0mVFD
Я бы посоветовал работать с датой как с датой, а не как со строкой - это более правильно с точки зрения производительности(для компа число сравнить проще чем строку) и семантики(так нагляднее для человека):
SELECT * FROM mytable WHERE DAY(date) = 1;