Как я могу объединить столбец месяца и столбец года в столбец месяца

#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)