我在SQL中使用以下代码行:
REPLACE(CONVERT(VARCHAR(11),getdate(),106), ' ','-')
将指定日期转换为MMM-DD-YYYY
格式,如果当前日期超过10,则此代码工作正常。
但是当我尝试转换单个数字日期时,我遇到错误,例如当我转换日期9 jan 2014
时。它被转换为Jan--9-2014
。
实际上这是错误的,因为它包含一个额外的-
。
请帮我解决此问题。
答案 0 :(得分:1)
你可以试试这个:
select convert(varchar, getdate(), 105)
select REPLACE(REPLACE(CONVERT(VARCHAR,getdate(),106), ' ','-'), ',','')
请检查另一个sql datetime格式:
select convert(varchar, getdate(), 101)
select convert(varchar, getdate(), 102)
select convert(varchar, getdate(), 103)
select convert(varchar, getdate(), 104)
select convert(varchar, getdate(), 105)
select convert(varchar, getdate(), 106)
select convert(varchar, getdate(), 107)
select convert(varchar, getdate(), 108)
select convert(varchar, getdate(), 109)
select convert(varchar, getdate(), 110)
select convert(varchar, getdate(), 111)
select convert(varchar, getdate(), 112)
select convert(varchar, getdate(), 113)
答案 1 :(得分:0)
在dd-mmm-yyyy格式中转换日期(例如,2018年6月1日)
REPLACE(CONVERT(CHAR(11), DOB, 106),' ','-') AS DOB
答案 2 :(得分:0)
自SQL Server 2012 + 起,您可以使用FORMAT(value, format [, culture ])
format
参数采用任何有效的standard format string或custom formatting string
示例:
SELECT FORMAT(GETDATE(), 'dd-MMM-yyyy')
进一步阅读:
答案 3 :(得分:-1)
答案 4 :(得分:-1)
试试这个。
select REPLACE(REPLACE(CONVERT(VARCHAR,getdate(),107), ' ','-'), ',','')
答案 5 :(得分:-1)
select REPLACE(replace(cast(getDate() as varchar(11)), ' ', ' '), ' ','-')
在你的小提琴上返回正确的结果Jan-9-2014
答案 6 :(得分:-1)
这个怎么样:
select REPLACE(REPLACE(REPLACE(cast(getDate() as varchar(11)),' ','{}'),'}{',''),'{}','-')
输出:Jan-9-2014
答案 7 :(得分:-1)
怎么样?
select left(DATEname(m,getdate()),3)+'-'+
cast(DAY(getdate()) as varchar)+'-'+
CAST(year(getdate()) as varchar)