2009-04-03 5 views

ответ

2

Вы можете взглянуть на CAST and CONVERT на MSDN.

SELECT CONVERT(VARCHAR(30), datetime_field, 130) AS formatted_date 

преобразует дату в следующем формате: дд пн гггг чч: ми: сс: mmmAM (или PM)

+0

HI этот формат не доступен в списке ДД ММ ГГГГ ЧЧ мм сс AM (или PM) – 2009-04-03 07:30:23

+0

Я думаю, превращающего в стиле даты и времени 130, ближе всего к вашему запрошенной даты – RuudKok

1

Было бы трудно получить его более неэффективной, так как это, но здесь идет

DECLARE @GetDate DATETIME 
SET @GetDate = '01-01-2009 13:10:20' 
SELECT 
    CAST(DATEPART(dd, @GETDATE) AS VARCHAR(2)) + ' ' 
    + CAST(DATEPART(mm, @GETDATE) AS VARCHAR(2)) + ' ' 
    + CAST(DATEPART(yyyy, @GETDATE) AS VARCHAR(4)) + ' ' 
    + CAST(DATEPART(hh, @GETDATE)%12 AS VARCHAR(2)) + ' ' 
    + CAST(DATEPART(mi, @GETDATE) AS VARCHAR(2)) + ' ' 
    + CAST(DATEPART(ss, @GETDATE) AS VARCHAR(2)) + ' ' 
    + CASE WHEN DATEPART(hh, @GETDATE) > 12 THEN 'AM' ELSE 'PM' END 
+1

она не должна be: CASE КОГДА DATEPART (hh, @ GETDATE) <12 THEN 'AM'? – RuudKok

+0

@Zaagmans - честно говоря, я понятия не имею. AM/PM - одна из тех вещей, которые я не могу понять. Если AM после полудня, вы правы. Если PM прошел в полдень, вы ошибаетесь

+0

+1 за усилие! – Learning

1

Если вы используете SQL 2005 и 2008 хороший путь, чтобы написать процедуру CLR, чтобы сделать форматирование для вас. .NET Framework имеет очень мощные подпрограммы форматирования для различных типов данных, и имеет смысл использовать их, когда вы хотите сделать форматирование на уровне базы данных.

Хотя, должно ли это быть в случае, если, конечно, весьма спорно. Я могу понять логику команды SQL Server, не отказываясь назад, чтобы поддерживать гибкое форматирование, учитывая, что основным заданием базы данных является хранение и извлечение данных.

4

Я бы рекомендовал форматировать строку на среднем уровне/уровне или стороне клиента. Это намного проще с различными форматными методами ... Это требование презентации, почему бы вам не форматировать на уровне презентации?

+0

+1 Не знаю, почему это должно было быть понижено. Это солидный совет. –

Смежные вопросы