临时更改SQL查询输出中日期列的格式MM/YY->;年月日

临时更改SQL查询输出中日期列的格式MM/YY->;年月日,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我的SQL Server上有如下格式的数据: 06/21 年月日 我想操纵它,使所有日期显示为MM/DD/YYYY。因此,如前一个示例所示: 06/01/2021 我想知道是否有某种函数可以在查询中运行,以便在输出中以不同的方式显示日期列?我不想实际改变列在后端的格式化方式,我只想改变它在单个查询结果中呈现给用户的方式 谢谢你的帮助 使用素材 declare @var varchar(64) = '06/21 ' select stuff(@var,4,0,'01/20') 你的桌子 s

我的SQL Server上有如下格式的数据:

06/21 
年月日

我想操纵它,使所有日期显示为MM/DD/YYYY。因此,如前一个示例所示:

06/01/2021
我想知道是否有某种函数可以在查询中运行,以便在输出中以不同的方式显示日期列?我不想实际改变列在后端的格式化方式,我只想改变它在单个查询结果中呈现给用户的方式


谢谢你的帮助

使用
素材

declare @var varchar(64) = '06/21 '
select stuff(@var,4,0,'01/20')
你的桌子

select stuff(yourColumn,4,0,'01/20')
From yourTable

只需将
/
替换为
01/20

declare @yourDate varchar(10) = '06/21'
select replace(@yourDate ,'/','/01/20')
结果:

但将其转换为适当的日期可能更明智:

declare @yourDate varchar(10) = '06/21'
select cast(replace(@yourDate ,'/','/01/20') as date)
您可以使用此解决方案 它适用于所有年份1998。。2000,2001 ...

declare @theDate varchar(10) = '06/21'
select convert(date,'01/'+ @theDate ,3)

数据库中保存的日期是什么?它只是保存为varchar吗?您还希望所有日期都设置为每月的第一天吗?(因为您没有在数据库中保存日期)?任何时候只要看到日期,它都不会编辑表中的基础数据。请修复数据,以便使用正确的
date
s!Y2K打电话来,想知道为什么您仍然使用2位数的年份。@Brad是的,它们被保存为varchar,因为我们正在删除这些数据,而且数据通常以不同的格式出现。是的,这些必须都是本月的第一天。所以我把这些都转换成了日期类型?date或datetime@InfoSec我该如何对一列中的所有值执行此操作而不逐个执行?只需将@var替换为列名我喜欢这个想法+1