SQL - Tareas programadas

 
Vista:

Tareas programadas

Publicado por david (19 intervenciones) el 17/12/2004 20:47:42
hola......necesito importar datos de forma automatica del dia anterior tomando como referencia una fecha que se encuentra en un campos llamado \"starttime\" el problema es que cuando programo dicho evento coloco esto

select * from tabla_origen where starttime like \'17/12/04%\'

y se ejecuta siendo hoy 18/12/04.......si quisisera colocarlo que lo hiciera esta rutina todos los dias y me extrajera los datos de los dias anterior como haria? me dijeron que con \"sysdate\" pero no se como colocarlo!!!

gracias de verdad....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Tareas programadas

Publicado por Liliana (426 intervenciones) el 17/12/2004 21:29:10
Hola,
La función que te da la fecha actual del servidor es GETDATE(), con fecha y hora.
Para convertirla solo en fecha:
SELECT CONVERT(CHAR(10), DATEADD(DD, -1, GETDATE()), 112)

Si el dato de tu tabla es de tipo DATETIME, podés hacer la comparación con la fecha de ayer así:

SELECT miscampos
FROM mitabla
WHERE CONVERT(CHAR(10), mifecha, 112) = CONVERT(CHAR(10), DATEADD(DD, -1, GETDATE()), 112)

Si tu fecha no tiene la hora incluída, mejor, cambiá el WHERE así:
WHERE mifecha = CONVERT(CHAR(10), DATEADD(DD, -1, GETDATE()), 112)

Saludos, Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tareas programadas

Publicado por david (19 intervenciones) el 17/12/2004 22:46:49
hola liliana, lo que sucede es que el campo viene dado de la siguinete manera 17/12/2004 09:05:05 es decir dia,meses,año hora,minuto,segundo y coloco esto:

select * from tabla where starttime like '17/12/04%'

asi el me busca de la base de datos central en ese campo los datosq ue empiecen con esa descripcion...lo que quiero es evitar estar quitando y colocando esa fecha..sino que lo haga automaticamente....y que extraiga si hoy es 18/12/2004 los datos del 17/12/2004.....la verdad no entiendo nada de loq ue me colocaste..ayudame por favor....
de verdad
gracias!!!!
gracias!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Tareas programadas

Publicado por Liliana (426 intervenciones) el 20/12/2004 13:05:09
Hola David,
Lo que vos hacés con LIKE yo estoy haciendo con el CONVERT, es decir, tomar solo la fecha, sin tener en cuenta la hora, después miralo detenidamente en los libros en pantalla para entenderlo bien.

Si lo estás haciendo a través de un JOB programado, en "tarea de ejecución de SQL" podés poner la ejecución de tu consulta, y enviar la fecha del servidor por parámetro:

DECLARE @fecha char(10)
SELECT @fecha = CONVERT(CHAR(8), DATEADD(DD, -1, GETDATE()), 112) -- esta función resta un día a la fecha de proceso y lo deja sin el dato de la hora

SELECT * FROM tabla WHERE CONVERT(CHAR(8), starttime, 112) = CONVERT(CHAR(8), DATEADD(DD, -1, GETDATE()), 112)

Espero que te sirva.
Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar