我从JSP传递11-09-2013
格式的字符串格式dd-mm-yyyy
的日期。我的疑问是:
select convert(varchar(10),'11-09-2013',106)
但它没有给出我预期的输出,即:
11-SEP-2013
答案 0 :(得分:0)
DECLARE @d CHAR(10) = '11-09-2013'; -- dd-mm-yyyy
SELECT UPPER(REPLACE(CONVERT(CHAR(11), CONVERT(DATETIME, @d, 103), 106), ' ', '-'));
-- if 2008+ you can use DATE instead:
SELECT UPPER(REPLACE(CONVERT(CHAR(11), CONVERT(DATE, @d, 103), 106), ' ', '-'));
-- if 2012 you can use:
SELECT UPPER(FORMAT(CONVERT(DATE, @d, 103), 'dd-MMM-yyyy'));
导致所有三种情况:
11-SEP-2013
但是,如此转换为字符串等可能非常昂贵。为什么需要这种输出格式,它在哪里?如果在客户端呈现这一点,那么最好在客户端使用字符串格式化功能。