Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Funcion restar fechas en tablas de sql para quitar usuarios vip

Estas en el tema de Funcion restar fechas en tablas de sql para quitar usuarios vip en el foro de SQL Server en Foros del Web. Hola amigos, estoy intentando crear la sentencia pero es muy compleja para mis conocimientos. Necesito que cuando llegue la fecha con los valores cargados que ...
  #1 (permalink)  
Antiguo 07/10/2015, 01:25
 
Fecha de Ingreso: octubre-2015
Mensajes: 10
Antigüedad: 9 años, 1 mes
Puntos: 0
Pregunta Funcion restar fechas en tablas de sql para quitar usuarios vip

Hola amigos, estoy intentando crear la sentencia pero es muy compleja para mis conocimientos.
Necesito que cuando llegue la fecha con los valores cargados que hay en la tabla "vencimiento" actualice otra tabla con otro valor devolviendo a usuario normal,
por ejemplo: "fechavip" 07/10/2015 "vencimiento" 07/11/2015.
El 07/11 que vuelva a ser usuario normal actualizando la tabla "tipo" con los valores: 1=usuario normal 2=usuariovip 3=vipvencida. Espero que me entiendan, saludos!
  #2 (permalink)  
Antiguo 07/10/2015, 07:10
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

La verdad no se te entiende mucho, porque no pones lo que llevas de tu consulta y ya sobre eso podremos darte respuestas mas concretas...


Imagino que requieres triggers...
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #3 (permalink)  
Antiguo 07/10/2015, 07:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

A ver...



No. Sigo sin poder visualizar tu código.


Postea lo que tienes hecho y vemos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 07/10/2015, 08:11
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Pues leyendo la descripcion del problema, quedo en blanco como todos los demas, o se mas explicito en lo que quieres, o pon un ejemplo de tus datos y lo que quieres obtener ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 07/10/2015, 10:49
 
Fecha de Ingreso: octubre-2015
Mensajes: 10
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Disculpen señores, les adjunto el codigo php
Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las reglas del foro, por favor: IMPORTANTE: REGLAS para postear en foros de Bases de Datos
Lo que necesito es que para el dia de la fecha que esta cargada en la tabla "vencimiento" con el valor de la variable '$nuevovenc' vuelva a actualizar las tablas vip y scfisvip de memb_info y de memb_stat al valor "0" o "2" que el usuario interpretaría como usuario normal o vip vencida. espero que comprendan, gracias!

Última edición por gnzsoloyo; 07/10/2015 a las 11:19 Razón: Codigo de progeramacion es OFF TOPIC en BBDD
  #6 (permalink)  
Antiguo 07/10/2015, 11:11
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

codigo de php no sirve.....pon solo el codigo de sql y datos de ejemplo de tus tablas
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 07/10/2015, 11:32
 
Fecha de Ingreso: octubre-2015
Mensajes: 10
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

disculpen mi ignorancia pero no se a que se refieren con codigo sql, ahi en el php adjunte lo que es la funcion de vip. les adjunto una imagen con las dos tablas visibles que almacenan las fechas por si les sirve de algo.
  #8 (permalink)  
Antiguo 07/10/2015, 11:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Cita:
no se a que se refieren con codigo sql


EL SQL es el lenguaje que entienden los Sistemas de Gestión de Bases de Datos, como SQL Server, Oracle, MySQL, PposgreSQL, etc. Es el lenguaje de consultas por antonomasia.
Cuando realizas una consulta desde un lenguaje de programación, como era tu caso, lo que haces es crear la consulta a la base dinámicamente y almacenarla en una variable, para luego enviarla al DBMS (Data Base Management System) SQL Server, quien la ejecuta.
Pero el DBMS nunca recibe variables de programación, ni las entendería en caso de recibirlas. Sólo entiende SQL.
¿Queda claro?

Cuando te pedimos SQL es LA CONSULTA PURA, con sus valores ya incorporados.

Programación es OFF TOPIC en los foros de BBDD, y su tu problema es la función en PHP, entonces estás posteando tu duda en el foro equivocado, y deberías hacerlo en PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 07/10/2015, 12:03
 
Fecha de Ingreso: octubre-2015
Mensajes: 10
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

no tengo una consulta pura, lo que quiero crear es una sentencia que se ejecute a diario con una funcion que analice la "fechapago" con "vencimiento" y si coincide la fecha actual con los valores que hay cargados en "vencimiento" actualizar las demas tablas para volver a usuario normal, de lo contrario no hacer nada! solo eso. o soy muy ignorante o no me estoy sabiendo explicar jaja gracias!
  #10 (permalink)  
Antiguo 07/10/2015, 12:06
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

las 2 cosas :P, parece que no sabes lo que quieres ni como obtenerlo, estas usando sql server o mysql?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 07/10/2015, 12:18
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Vaya creo que si entendí lo que quieres.

Cuando hacen el pago, tu comparas si la fecha de vencimiento es igual a la fecha del pago, si son iguales aumentas un mes la fecha de vencimiento... Correcto???

Me suge la duda, y si la fecha de vencimiento aun no se llega??? no actualizaras las demas tablas aunque ya haya hecho un pago??


Como sea, efectivamente creo que eso se controla mas por código o si no crea un store procedure donde compares fechas y actualices la información que requieres, pero insisto....

Sin código no te podemos ayudar!
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #12 (permalink)  
Antiguo 07/10/2015, 12:18
 
Fecha de Ingreso: octubre-2015
Mensajes: 10
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

gracias por tu sinceridad jaja estoy usando sql server 2000
  #13 (permalink)  
Antiguo 07/10/2015, 12:24
 
Fecha de Ingreso: octubre-2015
Mensajes: 10
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Cita:
Iniciado por Paty_RR Ver Mensaje
Vaya creo que si entendí lo que quieres.

Cuando hacen el pago, tu comparas si la fecha de vencimiento es igual a la fecha del pago, si son iguales aumentas un mes la fecha de vencimiento... Correcto???

Me suge la duda, y si la fecha de vencimiento aun no se llega??? no actualizaras las demas tablas aunque ya haya hecho un pago??


Como sea, efectivamente creo que eso se controla mas por código o si no crea un store procedure donde compares fechas y actualices la información que requieres, pero insisto....

Sin código no te podemos ayudar!
estuviste muy cerca, cuando hacen el pago se actualizan las tablas fechapago 07/10/2015 vencimiento 07/11/2015 y vip 1 del usuario que halla realizado el pago, osea que consta de un id, asi que no seria problema las demas tablas. necesito que para el 07/11/2015 vuelva a actualizarse automaticamente la tabla vip a 0 asi vuelve a usuario normal, comprende? solo eso. gracias
  #14 (permalink)  
Antiguo 07/10/2015, 12:27
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

investiga sobre triggers, es la solcuion a tu problema, cuando se hace la actualizacion revisas los datos del usuario y por medio del trigger cambias su status :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #15 (permalink)  
Antiguo 07/10/2015, 12:35
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Cita:
Iniciado por Paty_RR Ver Mensaje
La verdad no se te entiende mucho, porque no pones lo que llevas de tu consulta y ya sobre eso podremos darte respuestas mas concretas...


Imagino que requieres triggers...
Si regresa a la respuesta que menciono arriba, tu requieres de triggers (disparadores) que es una función que se ejecuta automaticamente, al hacer una actualización, eliminación o inserción de alguna tabla, puede ser la misma u otra independiente..
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #16 (permalink)  
Antiguo 07/10/2015, 12:42
 
Fecha de Ingreso: octubre-2015
Mensajes: 10
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Gracias a todos! los mantengo al tanto si llego a realizar lo que necesito, comento como y marco como resuelto. saludos!
  #17 (permalink)  
Antiguo 07/10/2015, 14:34
 
Fecha de Ingreso: octubre-2015
Ubicación: Sinaloa
Mensajes: 8
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

A ver si te sirve:
por lo que veo entran en juego minimamente 2 tablas, una con datos de usuario (le llamaremos tabla USUARIO) y otra con rangos de fechas relacionadas a los usuarios (a esta le llamaremos USUARIO_RANGO)
Piensa que la tabla USUARIO tiene 2 campos (IdUsuario INT, TipoUsuario INT)
Y la tabla USUARIO_RANGO tiene 3 campos (IdUsuario INT, FechaVIP DATETIME, FechaVen DATETIME)

Si creas un proceso que se ejecute a diario con una instruccion similar a esta:
Código SQL:
Ver original
  1. UPDATE A SET TipoUsuario = 1
  2. FROM USUARIO A
  3. INNER JOIN USUARIO_RANGO B ON a.IdUsuario=b.IdUsuario
  4. WHERE CONVERT(VARCHAR(8),b.FechaVIP,112) = CONVERT(VARCHAR(8),GETDATE(),112);

Podrás poner en TipoUsuario=1 todos los usuarios que tengan FechaVIP = a la fecha actual

Entiende por fecha actual a la fecha en la ejecutes el procesos.

Espero te sirva. Saludos!!

Última edición por gnzsoloyo; 07/10/2015 a las 15:02
  #18 (permalink)  
Antiguo 07/10/2015, 14:39
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Creo que seria mas facil usar triggers en lugar de jobs, ya que el cambio se hace automaticamente al momento de la acutalizacion y como lo planteas necesitas de un agente externo para hacer esta.
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #19 (permalink)  
Antiguo 07/10/2015, 14:53
 
Fecha de Ingreso: octubre-2015
Ubicación: Sinaloa
Mensajes: 8
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Una pequeña correccion al script:
Código SQL:
Ver original
  1. UPDATE USUARIO SET TipoUsuario = 1
  2. FROM USUARIO A
  3. INNER JOIN USUARIO_RANGO B ON a.IdUsuario=b.IdUsuario
  4. WHERE CONVERT(VARCHAR(8),b.FechaVEN,112) = CONVERT(VARCHAR(8),GETDATE(),112);

Por si es lo que buscas. lo que entiendo es que estas "esperando" que se cumpla una fecha determinada para realizar el cambio de estatus o tipo de usuario, si no hay actualizacion de datos no funciona un tigger porque jamas se dispararía.
Si tu intención es que diariamente esten cambiando de estatus los usuarios que lleguen a su fecha de vencimiento, necesitas algo o alguien que este sensando esas tablas y realizando el UPDATE correspondiente.

Última edición por gnzsoloyo; 07/10/2015 a las 15:01
  #20 (permalink)  
Antiguo 07/10/2015, 15:04
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Cita:
Iniciado por JCHCSK Ver Mensaje
Una pequeña correccion al script:
Código SQL:
Ver original
  1. UPDATE USUARIO SET TipoUsuario = 1
  2. FROM USUARIO A
  3. INNER JOIN USUARIO_RANGO B ON a.IdUsuario=b.IdUsuario
  4. WHERE CONVERT(VARCHAR(8),b.FechaVEN,112) = CONVERT(VARCHAR(8),GETDATE(),112);

Por si es lo que buscas. lo que entiendo es que estas "esperando" que se cumpla una fecha determinada para realizar el cambio de estatus o tipo de usuario, si no hay actualizacion de datos no funciona un tigger porque jamas se dispararía.
Si tu intención es que diariamente esten cambiando de estatus los usuarios que lleguen a su fecha de vencimiento, necesitas algo o alguien que este sensando esas tablas y realizando el UPDATE correspondiente.
Muy buena observacion, podrias poner un job que revise la fecha de vencimiento, cuando esta sea menor a la fecha actual entonces que se lance el proceso de actualizacion de los usuarios :), pero bueno al final solo estamos especulando sobre algo que no tenemos las bases concretas
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #21 (permalink)  
Antiguo 07/10/2015, 16:42
 
Fecha de Ingreso: octubre-2015
Mensajes: 10
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Cita:
Iniciado por JCHCSK Ver Mensaje
Una pequeña correccion al script:
Código SQL:
Ver original
  1. UPDATE USUARIO SET TipoUsuario = 1
  2. FROM USUARIO A
  3. INNER JOIN USUARIO_RANGO B ON a.IdUsuario=b.IdUsuario
  4. WHERE CONVERT(VARCHAR(8),b.FechaVEN,112) = CONVERT(VARCHAR(8),GETDATE(),112);

Por si es lo que buscas. lo que entiendo es que estas "esperando" que se cumpla una fecha determinada para realizar el cambio de estatus o tipo de usuario, si no hay actualizacion de datos no funciona un tigger porque jamas se dispararía.
Si tu intención es que diariamente esten cambiando de estatus los usuarios que lleguen a su fecha de vencimiento, necesitas algo o alguien que este sensando esas tablas y realizando el UPDATE correspondiente.
Exactamente, al fin me logré hacer entender! voy a probar el job modificandolo de acuerdo a las tablas correspondientes y comento como me fue, muchas gracias!
  #22 (permalink)  
Antiguo 07/10/2015, 19:46
 
Fecha de Ingreso: octubre-2015
Mensajes: 10
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Lamentablemente no pude llegar a lo que necesito, asi que voy a tener que optar por ese alguien o algo que se encargue de revisar todos los dias las tablas con vencimiento y de acuerdo a la fecha los quite de usuario vip para que vuelvan a usuario normal, gracias por su tiempo! saludos.
  #23 (permalink)  
Antiguo 07/10/2015, 19:53
 
Fecha de Ingreso: octubre-2015
Ubicación: Sinaloa
Mensajes: 8
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Que version de SQL Manejas? Porque si es una Standard puedes programar un JOB que corra diariamente y ejecute el script que puse ya adecuado a tus necesidades obvio.
Si no tienes SQL Standard, crea ese UPDATE dentro de un procedimiento almacenado y ejecutalo desde una tarea programada en tu server.
O crea un "sistemita" que al ejecutarlo se conecte a la BD y corra el procedimiento almacenado o el UPDATE directo... las opciones son muchas
  #24 (permalink)  
Antiguo 07/10/2015, 20:58
 
Fecha de Ingreso: octubre-2015
Mensajes: 10
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Funcion restar fechas en tablas de sql para quitar usuarios vip

Cita:
Iniciado por JCHCSK Ver Mensaje
Que version de SQL Manejas? Porque si es una Standard puedes programar un JOB que corra diariamente y ejecute el script que puse ya adecuado a tus necesidades obvio.
Si no tienes SQL Standard, crea ese UPDATE dentro de un procedimiento almacenado y ejecutalo desde una tarea programada en tu server.
O crea un "sistemita" que al ejecutarlo se conecte a la BD y corra el procedimiento almacenado o el UPDATE directo... las opciones son muchas
uso sql server 2000, creo que por ahora voy a fabricarme un modulito en php y hacerlo manualmente hasta que encuentre la forma correcta de hacerlo, creí que era mucho mas sencillo. muchas gracias por tu tiempo! mas que agradecido. saludos

Etiquetas: funcion, restar, sql, tabla, tablas, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:45.