Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Формат даты на выходе.  [new]
Alexden
Member

Откуда:
Сообщений: 11
Всем привет. Имеется скрипт, который выводит Картинка с другого сайта.
Необходимо поменять даты на выходе с (пример: May 16 2006 12:00AM на 16.05.2006) .
При изменении Дата_Рег Varchar (8000), @reg Varchar (8000), @regNext Varchar (40) на date или smalldatetime выводит ошибки.
Не совсем разобрался как конвертировать, обращаюсь за помощью.


DECLARE @tbl TABLE (КарточкаID INT,Контроль Varchar (8000), Связи VARCHAR(8000), Дата_Рег Varchar (8000), Рег_Номер Varchar(8000),Участник Varchar (8000),Основание Varchar (8000), Описание Varchar(8000))


DECLARE @c INT ,@Ko Varchar (8000), @p VARCHAR (8000), @reg Varchar (8000),@Nu Varchar (8000),@Par Varchar (8000),@Rea Varchar (8000),@Des Varchar(8000), @cNext INT,@KoNext Varchar (8000), @pNext VARCHAR(max), @idNext VARCHAR(40), @regNext Varchar (40), @NuNext Varchar(40),@ParNext Varchar (8000),@ReaNext Varchar (8000),@DesNExt Varchar (8000)
DECLARE c CURSOR FOR
SELECT r.f_parentID,  df.f_name, r.f_dependentID, t_DocTypes.f_namebrief, t_carddoc.f_dtRegisterDT, t_carddoc.f_Number,pa.f_UserName, t_carddoc.f_Reason, t_carddoc.f_Description
 
 
   
          
          FROM t_relation r
          left join  t_carddoc on (t_carddoc.f_id = r.f_dependentID  ) 
          
          left join t_DocTypes on (t_carddoc.f_doctypeID = t_DocTypes.f_ID )
          left join t_DFControl df on (t_carddoc.f_Controltype = df.f_type)
          left join t_Participant pa on (t_carddoc.f_id = pa.f_parentID)
          left join t_DocStates on (t_carddoc.f_docstateID = t_DocStates.f_Id) -- параметр для фильтра стадии
          
          
          where (r.f_Type = 3)
        
          
         ORDER BY r.f_parentID,df.f_name, r.f_dependentID
         
        OPEN c ;
        FETCH NEXT FROM c INTO @cNext,@KoNext, @idNext, @pNext, @regNext,@NuNext,@ParNext,@ReaNExt,@DesNExt;
        SET @c = @cNext  
       
        WHILE @@FETCH_STATUS = 0 BEGIN
        IF @cNext > @c  Begin
              
                  INSERT @tbl SELECT @c,coalesce(@Ko, ''), coalesce (@p, ''), coalesce (@reg, ''), coalesce (@Nu, ''),coalesce (@Par, ''),coalesce (@Rea, ''), coalesce (@Des, '') ;
                  Select @Ko = 'Контроль: ' + coalesce (@KoNext, '')
                  SELECT @p = coalesce (@PNext, '') + ' ' +'№ ' + coalesce (@NuNext, '') + ' '+'от ' + coalesce (@regNext,'')  ;
                  Select @reg = coalesce (@regNext, '') ; 
                  Select @Nu =  coalesce (@NuNext, '')
                  Select @Par = coalesce (@ParNext, '');
                  Select @Rea =coalesce (@ReaNext,'');
                   
                  Select @Des =coalesce (@DesNext, ''), @c =@cNext ;
             end else 
             begin
                  SET @Ko = COALESCE(@Ko + ', ', SPACE (0)) + ' Контроль: ' + coalesce (@KoNext, '')
                  SET @p = COALESCE(@p + ', ', SPACE (0))+ coalesce (@idNext, '') + ' '  + coalesce (@pNext, '') +' ' + '№ ' + coalesce (@NuNext, '') + ' ' + 'от ' + coalesce (@regNext,'') ;
                  SET @reg = COALESCE(@reg + ', ', SPACE (0))  + ' ' + coalesce (@regNext, '');
                  SET @Nu = COALESCE(@Nu + ',', SPACE (0)) + ' ' + coalesce (@NuNext, '');
                  SET @Par = COALESCE(@Par + ',', SPACE (0))  + ' ' + '' + coalesce (@ParNext, '')
                  
                  SET @Rea = COALESCE(@Rea + ',', SPACE (0)) +  ' ' + '' + coalesce (@ReaNext, '');
                  SET @Des = COALESCE(@Des + ',', SPACE (0)) + ' ' + '' + coalesce (@DesNext, ''); 
                END 
                  
             FETCH NEXT FROM c INTO @cNext,@KoNext, @idNext, @pNext, @regNext, @NuNext,@ParNext,@ReaNext,@DesNExt
        END
        INSERT @tbl SELECT @c,COALESCE(@Ko, ''), COALESCE (@p, ''), COALESCE (@reg, ''), COALESCE (@Nu, ''),Coalesce (@Par, ''),Coalesce (@Rea, ''),COALESCE (@Des, '') ;
        CLOSE c ;
DEALLOCATE c ;

SELECT * FROM @tbl 


Спасибо за ответ...
23 ноя 12, 12:26    [13518320]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты на выходе.  [new]
Alexden
Member

Откуда:
Сообщений: 11
Результаты вывода Картинка с другого сайта.
23 ноя 12, 12:35    [13518428]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты на выходе.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Alexden,

Изучайте форматы CONVERT. Вам нужен формат 104.

PS. SPACE(0) — весьма оригинальный способ написания пустой строки
23 ноя 12, 12:36    [13518438]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты на выходе.  [new]
Alexden
Member

Откуда:
Сообщений: 11
Спасибо. Решил проблему таким образом.
DECLARE @tbl TABLE (КарточкаID INT,Контроль Varchar (8000), Связи VARCHAR(8000), Дата_Рег Varchar (7000), Рег_Номер Varchar(8000),Участник Varchar (8000),Основание Varchar (8000), Описание Varchar(8000))


DECLARE @c INT ,@Ko Varchar (8000), @p VARCHAR (8000), @reg Varchar (7000),@Nu Varchar (8000),@Par Varchar (8000),@Rea Varchar (8000),@Des Varchar(8000), @cNext INT,@KoNext Varchar (8000), @pNext VARCHAR(max), @idNext VARCHAR(40), @regNext Varchar (40), @NuNext Varchar(40),@ParNext Varchar (8000),@ReaNext Varchar (8000),@DesNExt Varchar (8000)
DECLARE c CURSOR FOR
SELECT r.f_parentID,  df.f_name, r.f_dependentID, t_DocTypes.f_namebrief, CONVERT(Varchar (7000),t_carddoc.f_dtRegisterDT,104), t_carddoc.f_Number,pa.f_UserName, t_carddoc.f_Reason, t_carddoc.f_Description
26 ноя 12, 14:54    [13529917]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить