将dd-mm-yyyy字符串转换为日期

时间:2013-09-26 12:42:03

标签: sql sql-server date date-format

我从JSP传递11-09-2013格式的字符串格式dd-mm-yyyy的日期。我的疑问是:

select convert(varchar(10),'11-09-2013',106)

但它没有给出我预期的输出,即:

11-SEP-2013

1 个答案:

答案 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

但是,如此转换为字符串等可能非常昂贵。为什么需要这种输出格式,它在哪里?如果在客户端呈现这一点,那么最好在客户端使用字符串格式化功能。