none
Como guardar fecha y hora. RRS feed

  • Pregunta

  • Buen día!!

    Esperando me puedan ayudar a resolver mi siguiente problema, es lo isugiente:

    Estoy diseñando un programa pequeño donde se loguea el usuario, pero me gustaria saber cuantas horas se conecta y que dias, me pueden orientar como hacerlo.

    Tengo una tabla de usuarios con los siguientes campos: cveusuario, usuario, contraseña y fecha, con los siguientes formatos en sql: int, varchart(50), varchar(50), y date para que pueda guardar en la bd de sqlserver.

    Cuando creo mi formulario mando a guardar los mismos textbox, pero cuando quiero guardar la fecha con la hora, me marca un error ya sea que me aparezca esto  error en este punto " : ", o que no se puede convertir la fecha,  entonces lo que hago es hacer un substring para cortar algunos caracteres y con eso logro guardarlo solo que me guarda la hora, pero la fecha siempre la guarda con 1900-00-01 03:29, pero nunca la cambia. ¿Como le puedo hacer para guardar fehca y hora?

    Pd. la fecha la tengo declara en el formulario como time.

    Gracias

    Saludos!!

    jueves, 7 de julio de 2016 13:14

Respuestas

  • Estimado Vickingo

    El campo fecha debería ser datetime, para que pueda almacenar la fecha y hora, si lo defines sólo como tipo date, te dará error ya que al parecer estás almacenando fecha y hora y los formato no coinciden.

    Para almacenar la fecha y hora de logueo, deberías incluir en tu INSERT INTO un GETDATE(), para obtener la fecha y hora del servidor y no de la máquina local.

    Deberías cambiar el tipo de dato s de tu columna fecha a datetime y listo.

    Saludos

     

    Javier


    jueves, 7 de julio de 2016 13:21
  • Hola:

     Adicional a lo que ya te ha comentado Javier Córdova, agregaría lo siguiente:

    Tengo una tabla de usuarios con los siguientes campos: cveusuario, usuario, contraseña y fecha,

    La tabla en la que almacenas los usuarios no le veo tanto problema , el problema grave que veo es que quieres ir almacenando el historial de accesos en esa misma tabla y veo un problema puesto que en esa tabla tendrías que almacenar por cada Fecha y Hora de Logeo los mismos valores del cveUsuarios, Ususario y Contraseña, cosa que rompe con la estructura de una base de datos relacional.

     Para lograr esto que deseas mi sugerencia es que crees una tabla para llevar el registro de estos movimientos de acceso y salida, un ejemplo de la estructura podría ser esta:

    LogAccesos (nombe tabla)

    LogAccessosId (in)

    CveUsuario  (Del tipo int y debe ser una FK relacional a la tabla Usuarios donde conservas la información básica del usuarios)

    Acceso (DateTime)

    Salida (DateTime)

     Una vez que tengas esta tabla entonces sera cuestión de que hagas el INSERT de los datos cada vez que el usuario Acceda o Salga del sistema, para obtener el valor total del tiempo activo en el sistema, sera cuestión de que hagas una Resta de los valores almacenados en los campos Salida-Acceso y seria todo.

     Espero haya quedado un poco mas claro lo que deberías de hacer.


    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 7 de julio de 2016 14:40

Todas las respuestas

  • Estimado Vickingo

    El campo fecha debería ser datetime, para que pueda almacenar la fecha y hora, si lo defines sólo como tipo date, te dará error ya que al parecer estás almacenando fecha y hora y los formato no coinciden.

    Para almacenar la fecha y hora de logueo, deberías incluir en tu INSERT INTO un GETDATE(), para obtener la fecha y hora del servidor y no de la máquina local.

    Deberías cambiar el tipo de dato s de tu columna fecha a datetime y listo.

    Saludos

     

    Javier


    jueves, 7 de julio de 2016 13:21
  • Hola:

     Adicional a lo que ya te ha comentado Javier Córdova, agregaría lo siguiente:

    Tengo una tabla de usuarios con los siguientes campos: cveusuario, usuario, contraseña y fecha,

    La tabla en la que almacenas los usuarios no le veo tanto problema , el problema grave que veo es que quieres ir almacenando el historial de accesos en esa misma tabla y veo un problema puesto que en esa tabla tendrías que almacenar por cada Fecha y Hora de Logeo los mismos valores del cveUsuarios, Ususario y Contraseña, cosa que rompe con la estructura de una base de datos relacional.

     Para lograr esto que deseas mi sugerencia es que crees una tabla para llevar el registro de estos movimientos de acceso y salida, un ejemplo de la estructura podría ser esta:

    LogAccesos (nombe tabla)

    LogAccessosId (in)

    CveUsuario  (Del tipo int y debe ser una FK relacional a la tabla Usuarios donde conservas la información básica del usuarios)

    Acceso (DateTime)

    Salida (DateTime)

     Una vez que tengas esta tabla entonces sera cuestión de que hagas el INSERT de los datos cada vez que el usuario Acceda o Salga del sistema, para obtener el valor total del tiempo activo en el sistema, sera cuestión de que hagas una Resta de los valores almacenados en los campos Salida-Acceso y seria todo.

     Espero haya quedado un poco mas claro lo que deberías de hacer.


    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 7 de julio de 2016 14:40
  • Gracias por la ayuda!! 

    Javier Córdova

    Un poco tarde pero me ha servido!!

    Saludos!! 

    jueves, 14 de julio de 2016 4:00
  • Agradezco tu apoyo!!

    JoséLuisGarcía

    jueves, 14 de julio de 2016 4:01