You need to enable JavaScript to run this app. 如何在SQL Server中按mmddyy等格式将日期转为字符串
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server中按mmddyy等格式将日期转为字符串

SQL Server 实现指定格式日期转字符串的方法

核心实现逻辑

要实现和Excel TEXT函数等价的无分隔符短日期格式化,即把日期值转换为mmddyy、ddmmyy这类拼接格式的字符串,可根据实际使用的SQL Server版本选择对应方案:

1. 高版本(2012及以上)最简便实现

直接使用内置FORMAT()函数,语法逻辑和Excel TEXT函数高度对齐:

  • 转mmddyy格式(月+日+两位年):FORMAT(日期字段, 'MMddyy')
    示例:日期值2024-05-03执行后返回字符串050324,和Excel中TEXT(日期单元格,"mmddyy")的输出结果完全一致
  • 转ddmmyy格式(日+月+两位年):FORMAT(日期字段, 'ddMMyy')
    同上示例日期执行后返回030524

格式字符注意点:MM是代表带前导零的两位数月份的占位符,千万不要写成小写mm,在SQL Server的日期格式化规则里小写mm指代分钟数,会导致结果错乱。

2. 低版本(2008及更早)兼容实现

如果环境没有FORMAT()函数,可通过原生日期取值函数拼接实现:

  • 转mmddyy格式:
    RIGHT('0' + LTRIM(MONTH(日期字段)), 2) 
    + RIGHT('0' + LTRIM(DAY(日期字段)), 2)
    + RIGHT(LTRIM(YEAR(日期字段)), 2)
    
  • 转ddmmyy格式:
    RIGHT('0' + LTRIM(DAY(日期字段)), 2)
    + RIGHT('0' + LTRIM(MONTH(日期字段)), 2)
    + RIGHT(LTRIM(YEAR(日期字段)), 2)
    

实操注意事项

  • 入参必须是原生日期类型(date/datetime/datetime2),如果是字符串格式的日期值,需要先通过CAST()/CONVERT()转成日期类型再做格式化,避免结果偏差
  • 批量处理大表数据时,FORMAT()函数的性能弱于原生拼接的实现方式,亿级数据量的计算场景优先选择低版本兼容的拼接方案
  • 两种方法生成的结果均为无分隔符的定长6位字符串,完全匹配业务中纯文本短日期的使用要求

内容的提问来源于stack exchange,提问作者Nico M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 19:54:10