如何将日期格式从05-JUN-99转换为050599?

时间:2016-09-22 18:43:21

标签: sql sql-server

我在这里已经完成了建议的日期格式,但没有找到符合我要求的日期格式。

我有以下日期格式:

05-JUN-99。 05年的日期,JUN和1999年。

我被要求将其转换为mmddyy(两位数月份,两位数日期和两位数年份)。

任何想法如何做到这一点?

感谢您的协助

3 个答案:

答案 0 :(得分:2)

您可以在此处使用convert

select convert(varchar(20),cast('05-JUN-99' as date),10)

--Output: 06-05-99

select replace(convert(varchar(20),cast('05-JUN-99' as date),10),'-','')

--Output: 060599

Date Styles from the documentation

答案 1 :(得分:2)

我的投票使用FORMAT for SQL-SERVER 2012 +

SELECT FORMAT(CAST('05-JUN-99' AS DATETIME),'MMddyy')

这意味着没有嵌套的替换,没有无关的演员/转换等等让它更加整洁恕我直言

答案 2 :(得分:1)

我通常只是转换为字符串。获取年,月,日,将它们放在一个字符串中并将它们连接起来。

Declare @InputValue Varchar(16) = '05-JUN-99'
set @InputValue = replace(@InputValue,'-','/')
declare @TestDate DateTime
set @TestDate = convert(DateTime,@InputValue) 
select @TestDate
select   right ('0' + convert(Varchar(2),DATEPART(mm,@TestDate)),2) 
       + right ('0' + convert(Varchar(2),DATEPART(dd,@TestDate)),2)
       + right ('0' + convert(Varchar(4),DATEPART(yy,@TestDate)),2)