在我的程序中,我需要在sqlite数据库中保存人们的生日。然后在程序中我需要显示生日以及他们的年龄。
他们是一种在一栏中保存日期的特殊方式,还是我需要将它们分别保存在日,月和年中。
我的另一个问题是如何准确地将他们的年龄作为年,月和日。是否有可能通过某种功能来实现这一点。
答案 0 :(得分:3)
日期可以作为text,real或int存储在单个列中,并且可以与内置date
函数一起使用。
1。1日期和时间数据类型
SQLite没有为存储日期留出的存储类 和/或时间。相反,SQLite的内置Date And Time Functions 能够将日期和时间存储为TEXT,REAL或INTEGER 值:
TEXT 为ISO8601字符串(“YYYY-MM-DD HH:MM:SS.SSS”)。
REAL 作为朱利安日数字,即公元前4714年11月24日格林威治中午以来的天数。根据预示 公历。
INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以来的秒数。应用程序可以选择存储任何日期和时间 这些格式和使用内置的格式之间自由转换 日期和时间功能。
从数据库中选择用户年龄的一个示例是:
-- '2001-01-01' would be the text column where you store the birthdate
SELECT (strftime('%Y', 'now') - strftime('%Y', '2001-01-01')) - (strftime('%m-%d', 'now') < strftime('%m-%d', '2001-01-01')) AS 'Years'
答案 1 :(得分:1)
http://www.sqlite.org/datatype3.html处的sqlite文档建议使用ISO8601字符串。 SQLite还提供了一些可以在查询中使用的函数:http://www.sqlite.org/lang_datefunc.html