You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Azure Databricks SQL中将三位月份缩写转换为月份数字

在Azure Databricks SQL中将三位月份缩写转换为月份数字的方法

下面提供几种实用的实现方式,可根据你的数据情况选择:

方法1:利用日期转换函数(推荐标准缩写场景)

Azure Databricks SQL支持通过TO_DATE函数识别英文三位月份缩写,再用MONTH提取数字:

SELECT 
  month_col,
  -- 直接转换标准英文缩写
  MONTH(TO_DATE(month_col, 'MMM')) AS month_number
FROM your_table;

如果数据存在大小写混合的情况(比如jan/JAN),可以先统一格式:

SELECT 
  month_col,
  MONTH(TO_DATE(UPPER(month_col), 'MMM')) AS month_number
FROM your_table;

方法2:CASE WHEN手动映射(适合自定义/非标准缩写)

如果月份缩写存在变体(比如Sept代替Sep),可以用CASE WHEN做精准映射:

SELECT 
  month_col,
  CASE LOWER(month_col)
    WHEN 'jan' THEN 1
    WHEN 'feb' THEN 2
    WHEN 'mar' THEN 3
    WHEN 'apr' THEN 4
    WHEN 'may' THEN 5
    WHEN 'jun' THEN 6
    WHEN 'jul' THEN 7
    WHEN 'aug' THEN 8
    WHEN 'sep' THEN 9
    WHEN 'sept' THEN 9 -- 兼容变体
    WHEN 'oct' THEN 10
    WHEN 'nov' THEN 11
    WHEN 'dec' THEN 12
    ELSE NULL -- 处理无效的缩写值
  END AS month_number
FROM your_table;

方法3:MAP字典映射(简洁的标准缩写处理)

用MAP函数创建缩写-数字的映射关系,代码更紧凑:

SELECT 
  month_col,
  map(
    'Jan',1, 'Feb',2, 'Mar',3, 'Apr',4, 'May',5, 'Jun',6,
    'Jul',7, 'Aug',8, 'Sep',9, 'Oct',10, 'Nov',11, 'Dec',12
  )[UPPER(month_col)] AS month_number
FROM your_table;

实际使用示例(排序/比较)

转换后就可以直接用于排序或条件比较:

-- 按月份数字排序
SELECT *
FROM your_table
ORDER BY MONTH(TO_DATE(month_col, 'MMM'));

-- 查询7-12月的数据
SELECT *
FROM your_table
WHERE MONTH(TO_DATE(month_col, 'MMM')) > 6;

内容的提问来源于stack exchange,提问作者learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 08:04:57