gpt4 book ai didi

java - 如何在sqlite数据库中插入数据类型日期(yyyy-MM-dd)并在android中检索两个日期之间的数据

转载 作者:太空宇宙 更新时间:2023-11-03 11:44:07 24 4
gpt4 key购买 nike

我有一个包含姓名、地址、出生日期详细信息的 Sqlite3 数据库表。我想显示 1990-01-01 到 1995-01-01 的详细信息。

但Sqlite3数据库只存储以下数据类型。

TEXT
NUMERIC
INTEGER
REAL
NONE

有人知道存储和检索日期格式数据的一些提示吗?

最佳答案

根据我在 Android 中使用数据库进行多个项目的经验,我的答案是:

不要将日期存储为字符串。绝不!曾经!将它们存储为 Unix 时间戳,并在运行时根据需要格式化它们。

这里重要的是区分什么是您的数据 和什么是您的数据在屏幕上的表现形式。在数据库中存储数据在屏幕上的表示是错误的。

您始终将日期存储为 INTEGER 类型。

例如,现在要存储日期,您将存储值 System.currentTimeInMilis

要在 1990-01-01 和 1995-01-01 之间进行选择,您将:

long val1 = new GregorianCalendar(1990, 01, 01).getTimeInMillis();
long val2 = new GregorianCalendar(1995, 01, 01).getTimeInMillis();

然后您将在这 2 个值之间执行普通的 SELECT 语句。

要在屏幕上将这些值显示为 yyyy-MM-dd,您将使用 SimpleDateFormat 类:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
long longDate = cursor.getLong(colNumber); // from the database
String stringDate = dateFormat.format(new Date(longDate));

关于java - 如何在sqlite数据库中插入数据类型日期(yyyy-MM-dd)并在android中检索两个日期之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18206257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com