如何在SQL Server中转换日期格式为yyyy-dd-mm?
SQL Server 日期转换为yyyy-dd-mm格式的解决方法
方法1:使用FORMAT函数(SQL Server 2012及以上版本)
FORMAT函数支持自定义格式字符串,核心注意点是月份必须用大写的MM(小写mm代表分钟,这是最容易踩的坑),示例代码:
SELECT FORMAT(GETDATE(), 'yyyy-dd-MM') AS 转换后日期; -- 替换GETDATE()为你的目标日期字段名
如果服务器语言环境影响了格式输出,可指定文化参数强制统一:
SELECT FORMAT(GETDATE(), 'yyyy-dd-MM', 'en-US') AS 转换后日期;
方法2:使用CONVERT+字符串拼接(兼容所有SQL Server版本)
若你的SQL Server版本低于2012,无法使用FORMAT函数,可通过拆分日期组件再拼接的方式实现:
SELECT CONVERT(varchar(4), YEAR(你的日期字段)) + '-' + RIGHT('0' + CONVERT(varchar(2), DAY(你的日期字段)), 2) + '-' + RIGHT('0' + CONVERT(varchar(2), MONTH(你的日期字段)), 2) AS 转换后日期;
该方式通过提取年、日、月的数值,补零后拼接成yyyy-dd-mm格式,避免版本兼容问题。
常见问题排查
- 确认目标字段是日期/时间类型(datetime、date等),而非字符串类型。如果是字符串,需先转换为日期类型再格式化:
SELECT FORMAT(CONVERT(date, 你的字符串字段), 'yyyy-dd-MM') AS 转换后日期; - 检查格式字符串的大小写:
yyyy(4位年)、dd(2位日)、MM(2位月),别把月份写成mm(分钟)。
内容的提问来源于stack exchange,提问作者Jeevan
相关产品推荐
相关产品推荐

