Mi tabla contiene el campo Fecha de nacimiento que tiene tipo de datos como fecha y hora. Quiero obtener todos los registros teniendo cumpleaños hoy. ¿Cómo puedo obtenerlo?Cómo almacenar y obtener el valor de fecha y hora en SQLite
Respuesta
Intentar esta consulta:
SELECT * FROM mytable
WHERE strftime('%m-%d', 'now') = strftime('%m-%d', birthday)
SQLite tiene muy poco apoyo para el almacenamiento de fechas. Puede utilizar el método sugerido por Nick D anterior, pero tenga en cuenta que esta consulta dará como resultado un escaneo completo de la tabla dado que las fechas no están indexadas correctamente en SQLite (en realidad, SQLite no admite las fechas como un tipo incorporado).
Si realmente desea hacer una consulta rápida, tendrá que agregar una columna separada (integral) para almacenar el día del nacimiento (1-31) y adjuntar un índice para la misma en la base de datos.
Si solo quiere comparar las fechas, puede agregar una sola columna (INTEGER) que almacenará el valor de la fecha UTC (pero este truco no le permitirá buscar componentes de fechas individuales fácilmente).
buena suerte
Tener un tipo especial de fecha y hora siempre ha parecido como una sobrecarga innecesaria para mí, son números enteros rápido, flexible, y utilizar menos espacio.
Para los valores generales de fecha y hora, utilice las marcas de tiempo de Unix Epoch. Fácil de usar, extremadamente flexible, así como agnóstico de la zona horaria (¡e incluso del calendario!). (Recientemente escribí an article on using them, which I really have to plug...)
Dicho esto, si solo está interesado en las fechas en el calendario gregoriano, puede usar un número entero grande en el siguiente formato: AAAAMMDD, por ejemplo, 19761203. Para su uso particular, podría incluso crea un entero de cuatro dígitos como MMDD, digamos 1703 —, ¡que tiene que dar como resultado selecciones rápidas!
Parece que SQLite puede almacenar fechas como tiempo Unix: http://www.sqlite.org/datatype3.html (Consulte "1.2 Fecha y hora de tipo de datos"). Entonces no hay espacio desperdiciado allí. – idbrii
En cuanto a almacenar su fecha como un entero como AAAMMDD, ¿qué pasa con los cumpleaños que tienen fechas? ¿Qué hay de los cumpleaños en el mismo mes? Se necesitan muchas operaciones mod/div para extraer cada fragmento de fecha. Me parece que sería mejor utilizar las herramientas integradas (y optimizadas y legibles) de la base de datos, como la respuesta de NickD. – idbrii
- 1. Obtener Fecha y hora actual y el tiempo con [fecha NSDate] fecha y hora
- 2. ¿Cómo obtener fecha y hora en JavaScript?
- 3. ¿Cómo inserto el valor de fecha y hora en una base de datos SQLite?
- 4. Cómo almacenar solo el tiempo; no fecha y hora?
- 5. Al almacenar una fecha y hora en el servidor sql (tipo de fecha y hora), ¿en qué formato lo almacena?
- 6. cómo almacenar la fecha Y hora con JPA en Oracle?
- 7. ¿Cómo obtener la fecha y hora actual?
- 8. Forma óptima de almacenar valores de fecha y hora en la base de datos SQLite (Delphi)
- 9. Cómo obtener la fecha y hora del sello de fecha y hora
- 10. ¿Cómo obtener el formato de sistema de fecha y hora?
- 11. SQLite Manipulación de fecha/hora
- 12. ¿Cómo puedo convertir el formato de fecha y hora a fecha en SQLite?
- 13. cómo obtener valor de fecha y hora en el programa C
- 14. Fecha y hora en java
- 15. XSLT 1.0 Obtener fecha y hora actuales
- 16. Python: obtener la fecha y hora de la última hora
- 17. de fecha y hora
- 18. Fecha y hora en Groovy
- 19. Cómo separar FECHA y HORA desde DATETIME en MySQL
- 20. C++ fecha y hora
- 21. Compilar fecha y hora
- 22. ¿Cómo obtener la fecha y hora del cliente en ASP.NET?
- 23. ¿Cómo puedo obtener fecha y hora actual en PHP
- 24. cómo obtener la fecha y hora actual en SQL?
- 25. ¿Cómo restar una fecha y hora de otra fecha y hora?
- 26. T-SQL (fecha): ¿cómo obtener valor en una hora?
- 27. Almacenar valor booleano en SQLite
- 28. ¿Cómo leer la fecha y hora de vuelta de sqlite como una fecha y hora en vez de una cadena en Python?
- 29. DateTimePicker: elegir fecha y hora
- 30. MySQL: inserte fecha y hora en otro campo de fecha y hora
FECHA o DATETIME se almacenarán como NUMÉRICOS (consulte "2.2 Ejemplos de nombres de afinidad" en http://www.sqlite.org/datatype3.html) como unix time (consulte la sección "1.2 Date y Time Datatype"). Almacenar el día y el mes es una posible optimización, el almacenamiento de otra columna INTEGER es redundante. – idbrii