domingo, 25 de janeiro de 2015

Função para criar nova data em SQL

O SQL 2012 e superior tem a função DATEFROMPARTS para criar uma nova data a partir dos inteiros Ano, Mes e Dia, mas as versões 2000, 2005 e 2008 como é que fica?

Fica assim: você mesmo faz a função.



SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ############################################################################################################################################
-- # NOME   : DATEFROMPARTS
-- # PRODUTO  : SQL Server
-- # DEVELOPER  : Vitor Luiz Rubio
-- # COPYRIGHT  : 
-- # OBJETIVO  : Gerar uma data a partir dos seus componentes inteiros
-- # VERSAO   : 1.0
-- # DT. CRIACAO : 2013-04-18
-- # DT. ALTERACAO : 
-- #
-- # DEPENDENCIAS :
-- # 
-- # DEPENDENTES :
-- #
-- # HISTÓRICO
-- # 2013-04-18 : Criação
-- #  
-- ############################################################################################################################################ 

CREATE FUNCTION DATEFROMPARTS
(
 @Year int,
 @Month int,
 @Day int
)
RETURNS datetime
AS
BEGIN
 --data 0 é 1/1/1900
 
 set @Year = @Year - 1900;
 set @Month = @Month - 1;
 set @Day = @Day - 1;

 return dateadd(day, @Day, dateadd(month, @Month, dateadd(year, @Year, 0)))
 
 --teste
 --select dbo.DATEFROMPARTS(2013, 4, 18)
 --select dbo.DATEFROMPARTS(2014, 1, 1)
 --select dbo.DATEFROMPARTS(1983, 2, 14)
 
END
GO



Nenhum comentário:

Postar um comentário

Postagens populares

Marcadores

delphi (60) C# (31) poo (21) Lazarus (19) Site aos Pedaços (15) sql (13) Reflexões (10) .Net (9) Humor (9) javascript (9) ASp.Net (8) api (8) Básico (6) Programação (6) ms sql server (5) Web (4) banco de dados (4) HTML (3) PHP (3) Python (3) design patterns (3) jQuery (3) livros (3) metaprogramação (3) Ajax (2) Debug (2) Dicas Básicas Windows (2) Pascal (2) games (2) linguagem (2) música (2) singleton (2) tecnologia (2) Anime (1) Api do Windows (1) Assembly (1) Eventos (1) Experts (1) GNU (1) Inglês (1) JSON (1) SO (1) datas (1) developers (1) dicas (1) easter egg (1) firebird (1) interfaces (1) introspecção (1) memo (1) oracle (1) reflexão (1)