0

我正在尝试使用以下查询从数据库中检索数据:

select * from Oil Where date(DDate)=date('2012-08-07');

其中 DDate 是 Oil 表中数据类型为 text 的列之一。我得到Arrayindexoutofboundsexception。我发现它没有返回任何值,计数为 0。任何人都可以帮我解决这个问题。我实际上要做的是在表中存储日期值。我找不到应该使用哪种数据类型来保存日期,从 sqlite 站点是它没有日期和时间的特定数据类型。

4

2 回答 2

2

SQL Server 附带以下数据类型,用于在数据库中存储日期或日期/时间值:

日期- 格式 YYYY-MM-DD

DATETIME - 格式:YYYY-MM-DD HH:MM:SS

SMALLDATETIME - 格式:YYYY-MM-DD HH:MM:SS

select * from Oil Where date(DDate)=date('2012-08-07');

select * from Oil Where DDate='2012-08-07';
于 2012-04-07T12:13:22.707 回答
0

如果您有日期格式为“yyyy-MM-dd”的 DDate,那么您可以使用直接比较日期

select * from Oil Where DDate='2012-08-07';

否则,如果您的日期格式为“yyyy-MM-dd HH:mm:ss”,则查询如下所示

select * from Oil Where date(DDate)='2012-08-07';

如果您在 sqlite 数据库中保存日期并且您必须执行日期操作,例如排序或使用 date() 和 time() 函数,那么您必须使用 'yyyy-MM-dd HH:mm:ss' 日期格式。

数据类型对 sqlite 无关紧要。

于 2013-10-21T07:26:32.460 回答