2013-07-16 3 views
1

У меня есть элемент моего SQL-запроса, который выводит дату,SQL запросов для форматирования вывода

Запрос Элемент

CONVERT(DATETIME, CONVERT(CHAR(8), UPOST, 100)) AS UPDATED 

Выход

2013-05-03 00:00:00.000 

Что мне нужно сделать, это получить избавиться от нулей и изменить формат, чтобы он читался следующим образом;

03-05-2013 

Может кто-нибудь предложить способ сделать это

+2

какой-либо причине вы не можете вернуть 'DATETIME' и клиента формат стороне? – Oded

+5

SQL Server ** 2008 ** и new имеет 'DATE' - вы можете сначала конвертировать' DATETIME' в 'DATE', чтобы« потерять »временную часть. SQL Server ** 2012 ** и new имеют функцию под названием FORMAT (например, 'string.Format' в C#), которая позволяет детально специфицировать ваш выходной формат. –

+0

Да, приложение, которое обрабатывает данные, не в состоянии форматировать вывод , и я не могу повлиять на изменения там, bummer, которого я знаю, но это то, что я должен работать с –

ответ

1
CONVERT(VARCHAR(113), CONVERT(DATETIME, CONVERT(CHAR(8), UPOST, 100)), 105) AS UPDATED 

окончательное 105 означает, что формат будет дд-мм-гггг

0

У нас есть что-то вроде этой функции:

CREATE FUNCTION fn_StripTime(@DT datetime) 
RETURNS datetime 
AS 
BEGIN 
    return convert(datetime, convert(nvarchar,@DT,112)) 
END 
+0

Just FYI, 112 будет отформатировать его как YYYYMMDD не как DD-MM-YYYY , – Learner