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

SparkSQL如何将日期字段格式化为yyyyMM类型的年月份数据?

问题原因

你之前使用的date_format(delivery_date,'mmmmyyyy')格式符配置错误,mmmm在绝大多数SQL方言中代表月份的完整文本名称(比如9月会输出September),并非两位数值型月份,因此无法得到你要的输出结果。

正确实现方案

根据你常用的SQL运行环境,选择对应写法即可:

  • MySQL 环境:
    如果delivery_date是日期类型,直接用:
    DATE_FORMAT(delivery_date, '%Y%m')
    
    如果delivery_date是dd-mm-yyyy格式的字符串类型,需要先转日期再格式化:
    DATE_FORMAT(STR_TO_DATE(delivery_date, '%d-%m-%Y'), '%Y%m')
    
  • SQL Server 环境:
    写法1(简单易读):
    FORMAT(delivery_date, 'yyyyMM')
    
    写法2(性能更优):
    CONVERT(VARCHAR(6), delivery_date, 112)
    
  • Hive/Spark SQL 环境:
    DATE_FORMAT(delivery_date, 'yyyyMM')
    

以上写法针对输入日期16-9-2020,均会输出202009的目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:15:08