Bem vindo ao meu blog, faça comentários ao meu código para tentarmos chegar a uma boa solução

quinta-feira, 12 de julho de 2007

Função (Script) para trabalhar com Datas

/* Este script permite criar a função dbo.fn_dateformat a qual possibilita a formatação de uma
data em até 12 formatos diferentes.
Coloque o script sobre o Query Analyzer e execute o script na base de dados onde deseja que
a função seja criada.
OBS: Se desejar, use este script como um template para desenvolver sua própria função.
*/

USE PUBS
GO
IF EXISTS (SELECT [name] FROM sysobjects WHERE id = object_id('dbo.fn_dateformat') and xtype='FN')
DROP FUNCTION dbo.fn_dateformat
GO
CREATE FUNCTION dbo.fn_dateformat (@data smalldateTime, @formato int)
/***************************************************************************
Esta função permite formatar uma data em um dos formatos abaixo.
Parâmetros:
@data - data a ser formatada
@formato - determina o formato de saída para a data
Opções de formato:
1 - dia/mes/ano ->> 31/08/2005 (Default)
2 - dia-mes-ano ->> 31-08-2005
3 - Somente dia ->> 31
4 - Somente Mês ->> 08
5 - Somente Ano ->> 2005
6 - mes/dia/ano ->> 08/31/2005
7 - mes-dia-ano ->> 08-31-2005
8 - Formato Longo ->> 31 de Agosto de 2005
9 - Formato Curto ->> 31-Agosto-2005
10 - Mês/Ano ->> Agosto/2005
11 - Mês/Ano ->> 08/2005
12 - Dia/Hora ->> 31-08-2005 13:14
Exemplo:SELECT dbo.fn_dateformat(getdate(),1) as [dia/mes/ano]
SELECT dbo.fn_dateformat(getdate(),10) as [Mes/Ano]
SELECT dbo.fn_dateformat(getdate(),12) as [Dia/Hora]
Autor: Nilton Pinheiro
Website: http://www.mcdbabrasil.com.br
Baseado no Original: http://www.sqlservercentral.com/scripts/contributions/1568.asp

*******************************************************************************/
-- Retorna data como string
RETURNS nvarchar(20)
AS
BEGIN
DECLARE @Datafmt nvarchar(20)
-- Verifica se a data é válida
IF @data Is Null SET @Datafmt = ''
-- dia-mes-ano
ELSE IF @formato = 2
BEGIN
IF Day(@data) < datafmt =" '0'" datafmt =" Convert(varchar(2),Day(@data))" datafmt =" @Datafmt" datafmt =" (@Datafmt" datafmt =" (@Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 3" datafmt =" ('0'" datafmt =" (Convert(varchar(2)," formato =" 4" datafmt =" '0'" datafmt =" Convert(varchar(2)," formato =" 5" datafmt =" (SELECT" formato =" 6" datafmt =" '0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" (@Datafmt" datafmt =" (@Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 7" datafmt =" '0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" (@Datafmt" datafmt =" (@Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 8" datafmt =" ('0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 9" datafmt =" ('0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 10" datafmt =" CASE" datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 11" datafmt =" '0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" @Datafmt" formato =" 12" datafmt =" ('0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" (@Datafmt" datafmt =" (@Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt" datafmt =" ('0'" datafmt =" Convert(varchar(2)," datafmt =" @Datafmt" datafmt =" (@Datafmt" datafmt =" (@Datafmt" datafmt =" @Datafmt" datafmt =" @Datafmt">

Sem comentários: