Hive中如何将MM/DD/YYYY格式日期转为英文月份全称
提取日期字符串中的英文全称月份
没问题,我来帮你搞定这个需求!你想从"MM/DD/YYYY"格式的日期字符串里提取英文全称月份,思路用CASE+日期函数完全可行,当然也可以用数据库自带的日期格式化函数更高效,下面给你两种方案:
方案一:用数据库原生日期格式化函数(简洁高效)
不同数据库的函数略有差异,给你几个主流数据库的写法:
MySQL
SELECT ColumnA, DATE_FORMAT(STR_TO_DATE(ColumnA, '%m/%d/%Y'), '%M') AS `Column B (Output)` FROM your_table;
STR_TO_DATE(ColumnA, '%m/%d/%Y'):把字符串转成日期类型DATE_FORMAT(..., '%M'):格式化日期为英文全称月份(比如December)
SQL Server
SELECT ColumnA, DATENAME(MONTH, CONVERT(DATE, ColumnA, 101)) AS [Column B (Output)] FROM your_table;
CONVERT(DATE, ColumnA, 101):按MM/DD/YYYY格式把字符串转成日期DATENAME(MONTH, ...):提取月份的英文全称
PostgreSQL
SELECT "ColumnA", TO_CHAR(TO_DATE("ColumnA", 'MM/DD/YYYY'), 'FMMonth') AS "Column B (Output)" FROM your_table;
TO_DATE("ColumnA", 'MM/DD/YYYY'):字符串转日期TO_CHAR(..., 'FMMonth'):格式化出不带尾随空格的英文全称月份
方案二:结合CASE与日期函数(通用不依赖数据库特性)
如果你想严格用CASE逻辑来实现,先把字符串转成日期提取月份数字,再用CASE映射成英文全称:
SELECT ColumnA, CASE WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 1 THEN 'January' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 2 THEN 'February' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 3 THEN 'March' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 4 THEN 'April' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 5 THEN 'May' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 6 THEN 'June' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 7 THEN 'July' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 8 THEN 'August' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 9 THEN 'September' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 10 THEN 'October' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 11 THEN 'November' WHEN MONTH(STR_TO_DATE(ColumnA, '%m/%d/%Y')) = 12 THEN 'December' END AS `Column B (Output)` FROM your_table;
注意:如果是SQL Server/PostgreSQL,把STR_TO_DATE(ColumnA, '%m/%d/%Y')换成对应数据库的日期转换函数即可,比如SQL Server用CONVERT(DATE, ColumnA, 101),PostgreSQL用TO_DATE(ColumnA, 'MM/DD/YYYY')。
用你的示例数据测试,两种方案都会得到预期的输出:
| ColumnA | Column B (Output) |
|---|---|
| 12/14/2017 | December |
| 12/11/2017 | December |
| 2/16/2018 | February |
| 1/2/2017 | January |
内容的提问来源于stack exchange,提问作者RashItIs
相关产品推荐
相关产品推荐

