#mysql #sql #string #datetime
#mysql #sql #строка #дата и время
Вопрос:
У меня есть таблица SQL со столбцами (месяц, год и yearmonth)
Month year
5 2020
6 2020
11 2020
Я хочу вставить значения столбца yearmonth в этом формате
yearmonth
202005
202006
202011
Я пробовал пару функций Datetime, но это не сработало.
Комментарии:
1. Продолжайте. Попробуйте что-нибудь.
2. Рассматривали ли вы возможность использования
concat()
функции для, ну, объединения вещей?3. Да, я пробовал contat(). Но это суммирование значений. Я не получаю формат YYYYMM. @mustaccio
Ответ №1:
Я думаю, что проще использовать строковые функции:
select t.*, concat(year, lpad(month, 2, '0')) as yearmonth
from mytable t
lpad()
при необходимости добавляет «недостающий» 0
к части месяца, которую затем вы можете объединить с годом.
С другой стороны, если вам нужен числовой результат, арифметика — это правильный путь:
select t.*, year * 100 month as yearmonth
from mytable t
Комментарии:
1. Это сработало довольно хорошо. Раньше не упоминал о lpad. Я ценю ваше время. Спасибо.
Ответ №2:
Если вам нужна строка, я мог бы использовать:
select cast(year * 100 month as char)