SQLServer日期转yyyy-mm-dd格式的常用方法包括:CONVERT(样式23)、FORMAT函数、CAST与CONVERT组合、DATEPART字符串拼接、CONCAT与FORMAT组合、LEFT/SUBSTRING截取、自定义函数及SSRS格式化,可根据版本和需求灵活选用。
SQL Server日期转换为YYYY-MM-DD多种实现方式
作者:技术拾光
时间:2026-06-12
浏览:479
文章目录
SQL Server日期转"yyyy-mm-dd"的几种实用方法
日期格式转换是SQL Server开发中的常见需求,尤其在需要输出"yyyy-mm-dd"标准格式时。虽然实现方式多样,但不同版本和场景下,最优选择可能不同。本文整理了从基础的CONVERT到高版本的FORMAT,再到自定义函数等常见方法,可根据实际需求选用。

方法 1:使用CONVERT函数,代码最简洁
这是最经典的路径,指定样式代码23即可直接获得'yyyy-mm-dd'格式的字符串。
SELECT CONVERT(varchar, YourDateColumn, 23) AS FormattedDate FROM YourTable;
方法 2:FORMAT函数(SQL Server 2012及以上版本)
如果使用2012或更新版本,FORMAT函数非常直观,直接传入格式模板即可。
SELECT FORMAT(YourDateColumn, 'yyyy-MM-dd') AS FormattedDate FROM YourTable;
方法 3:CAST与CONVERT组合
先将日期转为带时间的格式(样式120),再截取前10个字符,思路清晰。
SELECT CAST(CONVERT(char(10), YourDateColumn, 120) AS varchar) AS FormattedDate FROM YourTable;
方法 4:DATEPART函数加字符串拼接
逐个提取年、月、日,用字符串拼接。月、日前面补零,保证两位数。代码稍长,但逻辑直观,适合不想依赖特定样式码的场景。
SELECT
CAST(DATEPART(year, YourDateColumn) AS varchar) + '-' +
RIGHT('0' + CAST(DATEPART(month, YourDateColumn) AS varchar), 2) + '-' +
RIGHT('0' + CAST(DATEPART(day, YourDateColumn) AS varchar), 2) AS FormattedDate
FROM YourTable;
方法 5:CONCAT + DATEFROMPARTS(SQL Server 2012及以上)
同样使用DATEPART取各部分,但用CONCAT拼接更简洁,再用FORMAT为月、日补零。
SELECT CONCAT(
DATEPART(year, YourDateColumn),
'-',
FORMAT(DATEPART(month, YourDateColumn), '00'),
'-',
FORMAT(DATEPART(day, YourDateColumn), '00')
) AS FormattedDate
FROM YourTable;
方法 6:直接截取LEFT字符
利用CONVERT转成120格式('yyyy-mm-dd hh:mi:ss'),用LEFT截取前10个字符,简单直接。
SELECT LEFT(CONVERT(varchar, YourDateColumn, 120), 10) AS FormattedDate FROM YourTable;
方法 7:SUBSTRING截取
思路与方法6类似,使用SUBSTRING指定起始位置和长度,结果相同。
SELECT SUBSTRING(CONVERT(varchar, YourDateColumn, 120), 1, 10) AS FormattedDate FROM YourTable;
方法 8:自定义函数(UDF)
如果转换需求在项目中反复出现,封装成函数是较好的选择。先创建函数:
CREATE FUNCTION dbo.FormatDate (@date datetime) RETURNS varchar(10) AS BEGIN RETURN CONVERT(varchar, @date, 23) END
然后直接调用:
SELECT dbo.FormatDate(YourDateColumn) AS FormattedDate FROM YourTable;
方法 9:在SSRS报表中直接格式化
如果使用SQL Server Reporting Services(SSRS),可在报表设计器中直接设置日期字段的格式为'yyyy-MM-dd',无需在SQL层处理。
以上方法各有侧重:基础场景使用CONVERT或LEFT截取最省事;高版本用户可享受FORMAT的便利;需要复用时,自定义函数值得考虑。按需选用即可。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。
相关文章