#mysql #sql
Вопрос:
Запрос
SELECT Name AS Period,YEAR(Name) AS Year FROM periods;
Период | Год |
---|---|
202001 | нулевой |
202002 | нулевой |
202003 | нулевой |
202004 | нулевой |
202005 | нулевой |
202006 | нулевой |
202007 | нулевой |
Это прекрасно работает в MariaDB, но не в MySQL.
Как я могу это решить?
Комментарии:
1. Каков тип данных для
Name
столбца?2.
202001
это строка, а не Дата. Используйте строковую функцию, такую как LEFT().3. Вы определили этот столбец по-разному в mysql и MariaDB?
4. @RiggsFolly Нет, они одинаковые.
5. @forpas как я могу сделать то, что вы предлагаете?
Ответ №1:
Попробуйте выполнить следующий запрос
SELECT Name AS Period,Year(DATE_FORMAT(concat(Name,'01'), '%Y%m%d')) AS Year FROM periods;
Комментарии:
1. Привет, спасибо за ваш ответ. Я попробовал, и это не работает!
2. Я думаю, что вам нужна полная дата (с номером дня),
STR_TO_DATE()
чтобы действительно работать должным образом @Tejas3. Обновил запрос, пожалуйста, проверьте сейчас
4. @Tejas отлично работает, большое спасибо!