Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/12/2011, 14:30
yoniti7784
 
Fecha de Ingreso: mayo-2011
Ubicación: sinaloa
Mensajes: 150
Antigüedad: 13 años, 10 meses
Puntos: 4
como insertar dimencion fecha sin ciclo.

Buenas. Tengo el siguiente codigo

Código SQL:
Ver original
  1. CREATE PROCEDURE ejemplo1
  2.     AS BEGIN
  3.     DECLARE @fDesde DATETIME, @fHasta DATETIME
  4.     SELECT @fDesde = '20010101', @fhasta = '20111205'
  5.     ;WITH
  6.         l0 AS(SELECT 0 AS c UNION ALL SELECT 0),
  7.         l1 AS(SELECT 0 AS c FROM l0 AS a, l0 AS b),
  8.         l2 AS(SELECT 0 AS c FROM l1 AS a, l1 AS b),
  9.         l3 AS(SELECT 0 AS c FROM l2 AS a, l2 AS b),
  10.         l4 AS(SELECT 0 AS c FROM l3 AS a, l3 AS b),
  11.         l5 AS(SELECT 0 AS c FROM l4 AS a, l4 AS b),
  12.         l6 AS(SELECT 0 AS c FROM l5 AS a, l5 AS b),
  13.         nums AS(SELECT ROW_NUMBER() OVER(ORDER BY c) AS n FROM l6)
  14.     INSERT TABLA_1(nombre)
  15.         SELECT  DATEADD(DAY, nums.n - 1, @fDesde)
  16.         FROM    nums WHERE n <= DATEDIFF(DAY, @fDesde, @fHasta) + 1
  17. END

Lo que pasa es que me inserta en en la tabla los siguientes valores en el campo:
_____Nombre______ _____ANIO_____ _____MES_____ _____DIA____
Ene 1 2001 12:00AM NULL NULL NULL


bueno me llena varios registros pero con ese formato.
Como puedo hacer para insertar en AÑO el año de esa fecha así como también en MES y DÍA.

Es decir insertar por ejemplo lo siguiente a la tabla TABLA_1
('Ene 1 2001 12:00AM ',2001,1,1)


espero haberme explicado, gracias