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

SQL Server存储过程中如何转换yyyy-mm-dd hh:mm:ss.sss为ddmmyy及dd-Mon-yy格式?

在SQL Server存储过程中转换日期格式的解决方案

别发愁啦,这两种日期格式转换在SQL Server里都能轻松搞定,我给你整理了两种适配不同版本的实现方法,你可以按需选用:

1. 转换为ddmmyy格式

这里分两种情况,取决于你的SQL Server版本:

方法一:用FORMAT函数(SQL Server 2012及以上版本适用)

这个方法最直观,直接指定格式字符串即可:

DECLARE @InputDate DATETIME = '2018-04-27 15:30:45.123';
SELECT FORMAT(@InputDate, 'ddMMyy') AS ConvertedDate;
-- 输出结果:270418

方法二:用CONVERT+字符串截取(兼容所有SQL Server版本)

如果你的版本比较老,没法用FORMAT,可以用CONVERT先转成标准格式,再截取需要的部分:

DECLARE @InputDate DATETIME = '2018-04-27 15:30:45.123';
SELECT RIGHT(CONVERT(VARCHAR(8), @InputDate, 112), 6) AS ConvertedDate;
-- 说明:CONVERT(...,112)会得到yyyymmdd格式的字符串,RIGHT取后6位就是ddmmyy
-- 输出结果:270418

2. 转换为dd-Mon-yy格式(比如27-Apr-18)

同样提供两种方法:

方法一:用FORMAT函数(SQL Server 2012及以上版本适用)

直接指定带横杠的月份缩写格式:

DECLARE @InputDate DATETIME = '2018-04-27 15:30:45.123';
SELECT FORMAT(@InputDate, 'dd-MMM-yy') AS ConvertedDate;
-- 输出结果:27-Apr-18(注意:月份缩写会受SQL Server的语言设置影响,确保语言为英文即可)

方法二:用CONVERT+REPLACE(兼容所有SQL Server版本)

先通过CONVERT得到dd Mon yy格式,再把空格替换成横杠:

DECLARE @InputDate DATETIME = '2018-04-27 15:30:45.123';
SELECT REPLACE(CONVERT(VARCHAR(11), @InputDate, 106), ' ', '-') AS ConvertedDate;
-- 说明:CONVERT(...,106)会得到dd Mon yy格式(比如27 Apr 18),REPLACE把空格换成-就得到目标格式
-- 输出结果:27-Apr-18

你只需要把上面示例里的@InputDate换成你存储过程中的日期字段或变量就行啦!

内容的提问来源于stack exchange,提问作者Manu C Rajan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:34:13