我有一个日期列,如下一个存储为VARCHAR
(不是DATE
类型的日期列),我想将其转换为具有以下格式的INTEGER
类型:{{1} }。因此,例如,如果这是我的示例数据:
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
。
答案 0 :(得分:1)
您可以使用下一个 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>
此外,您可以在此处进行检查: