entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Horas alamecenadas en Sqlite

Hola.

En mi base de datos Sqlite tengo las horas almacenadas como textos de la siguiente manera: 9:00, 10:00, 23:00 .... En cada registro una hora.

En la aplicación Android, la intención es que el usuario escoja un rango de horas, por ejemplo de 1:00 a 14:00 y se le muestren los registros que cumplen ese horario. (Horario de apertura y cierre de comercios por ejemplo.

Mi duda es, como debería de almacenar los datos en la BD, porque el almacenarlos como texto no lo veo muy cómodo para luego tratarlos, Pero tampoco quiero un almacenamiento del tipo "yyyy MMM dd HH:mm:ss" ya que lo único que me interesa es la hora.

Que yo sepa Sqlite no tiene un tipo especifico solo para las horas verdad'

Gracias y un saludo

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola Egoitz,

para que las comparaciones y rangos, lo mejor es guardar las horas en formato hh:mm. De esta forma, el horden alfabético coincide con el cronológico.

En tu caso, bastaría solo con ajustar que haya un 0 delante de las horas menores a 10 y un 0 delante de los minutos menores a 10: quedaría como 09:00 y 23:00

Saludos!

0voto

egoitz_gonzalez comentado

Hola Leonardo.

Entiendo que en Sqlite esos campos tienen que ser del tipo DataTime y en java del tipo SimpleDateFormat?

Un saludo!

1voto

Leonardo-Tadei comentado

Lo que yo te propongo es que sean string...

En MySQL por ejemplo, un campo DATE, TIME o DATETIME se almacena como string y lo único que se hace es pasarlo por una máscara de validación. Las funcines de manejo de fechas ( year(), month(), etc) funcionana tanto sobre un campo de tipo DATE como sobre un campo varchar que respete el formato.

Luego, al estar en ese formato en que el orden cronológico coincide con el alfabético, se lo puede tratar como un string para hacer operaciones lógicas.

Saludos!

PD: hace bastante tiempo atrás, MySQL guardaba las fechas como enteros, que armaba sacando espacios y separadores de la fecha en formato yyyymmddhhiiss... de esta forma también el orden de la numeración coincidía con el cronológico.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta