在mysql中将月份名和年份的列转换为格式为yyyymm的整数

amrnrhlw  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(453)

我有一个类似于下一个的日期列存储为 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 .

aurhwmvo

aurhwmvo1#

您可以使用下一个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>

此外,您可以在此处查看:
小提琴

相关问题