Преобразовать столбец с названием месяца и года в целое число в формате YYYYMM в MySQL - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть столбец даты, подобный следующему, который хранится как VARCHAR (не DATE тип), и я хочу преобразовать его в тип INTEGER со следующим форматом: YYYYMM.Так, например, если это где мои образцы данных:

period
"January 2018"
"February 2018"
"March 2018"

Я хотел бы получить следующие целые числа:

result
201801
201802
201803

Я попробовал следующий код:

select
    period,
    str_to_date(period, '%M %Y') as yearperiod
from
    table

Но это, например, формат 2018-01-00, который я хотел бы преобразовать в целое число 201801.

1 Ответ

0 голосов
/ 06 декабря 2018

Вы можете сделать это с помощью следующей последовательности MySQL методов:

(1) Первое применение STR_TO_DATE(period, '%M %d %Y').

(2) Затем примените DATE_FORMAT(<previous_result>, "%Y%m") к предыдущему результату.

(3) И, наконец, используйте CONVERT(<previous_result>, UNSIGNED), чтобы выполнить целочисленное приведение к предыдущему результату.

Это показано на следующем примере:

SELECT
    period,
    CONVERT(
      DATE_FORMAT(
        STR_TO_DATE(period, '%M %d %Y'),
        "%Y%m"
      ),
      UNSIGNED
    ) AS yearAndPeriod
FROM
    <table_name>

Также вы можете проверить это здесь:

DB Fiddle

...