Сама функция:
CREATE FUNCTION Convert36To10(@Val_36 varchar(9)) Returns int Begin DECLARE @j int, @len int, @Val_10 int DECLARE @Arr36 char(36) SET @Arr36 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' SET @Val_10 = 0 SET @j = 1 SET @Val_36 = LTrim(RTrim(@Val_36)) SET @len = Len(@Val_36) while @j <= @len begin if @j <> 1 SET @Val_10 = @Val_10 * 36 SET @Val_10 = @Val_10 + CharIndex(Substring(@Val_36, @j ,1), @Arr36) - 1 SET @j = @j+1 end Return @Val_10 End
Вот так она убивается, если существует:
if exists (select * from dbo.sysobjects (nolock) where id = object_id(N'[dbo].[Convert36To10]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[Convert36To10]
Вот так получается в запросе время с ее помощью:
CONVERT(varchar, DATEADD(ss, dbo.Convert36To10(SUBSTRING(Жур.DATE_TIME_IDDOC,9,6))/10000, 0), 108) as ВремяДок
Жур - идентифиактор журнала документов, поменяйте на свой.
|