Function date

venerdì 16 ottobre 2009 - 16.17

Gigio0000 Profilo | Newbie

Ciao a tutti!!


Ho un problema ho creato una function che mi mette le date da 6 caratteri a 8 caratteri adesso ho la necessità di inserire '/' in modo che le date mi vengono 01/01/2001 e vorrei che facesse tutto la function help me!!
questa è la function

declare @Anno varchar(2)
select @Anno = substring(@dataDiSei, 5, 2)
--return @Anno
return CASE
WHEN @Anno < '50'
THEN
CASE WHEN @Anno = ' '
THEN ''
ELSE substring(@dataDiSei, 1, 4) + '20' + @Anno
END
ELSE substring(@dataDiSei, 1, 4) + '19' + @Anno

END
end

lbenaglia Profilo | Guru

>Ho un problema ho creato una function che mi mette le date da
>6 caratteri a 8 caratteri

Ciao Daniele,

Puoi postare l'intero comando di CREATE FUNCTION ed un paio di esempi di utilizzo con il risultato che vorresti ottenenre?

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Gigio0000 Profilo | Newbie

Buongiorno Lorenzo

io vorrei che la mia function oltre a trasforamre le date da 6 caratteri a 8 caratteri (es.(01012001)) deve mettere anche gli / come separatore (es.(01/01/2001)) questa la funzione che trasforma le date da 6 a 8 :
ALTER FUNCTION [dbo].[expandDate]
(@dataDiSei nvarchar(6))
RETURNS varchar(12)
AS
BEGIN
declare @Anno varchar(2)
select @Anno = substring(@dataDiSei, 5, 2)
--return @Anno
return CASE
WHEN @Anno < '50'
THEN
CASE WHEN @Anno = ' '
THEN ''
ELSE substring(@dataDiSei, 1, 4) + '20' + @Anno
END
ELSE substring(@dataDiSei, 1, 4) + '19' + @Anno

END
end
cosi mi restitutisce le date in questo modo 01012001
adesso vorrei che me le facesse diventare cosi 01/01/2001
spero di essere stato chiaro!!

Ciao daniele

Gigio0000 Profilo | Newbie

Ciao Lorenzo grazie!!!

ho risolto ecco la function che mi mette date formattate come volevo cioè in questo modo
(es(01/01/2001))

BEGIN
declare @Anno varchar(2)
select @Anno = substring(@dataDiSei, 5, 2)
--return @Anno
return CASE
WHEN @Anno < '50'
THEN
CASE WHEN @Anno = ' '
THEN ''
ELSE left(@dataDiSei ,2)+ '/'+ SUBSTRING(@dataDiSei,3,2)+ '/' + '20' + (substring(@dataDiSei, 5, 2))
END
ELSE left(@dataDiSei ,2)+ '/'+ SUBSTRING(@dataDiSei,3,2)+ '/' + '19' + (substring(@dataDiSei, 5, 2))

END
end
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5