我正在尝试使用以下查询从数据库中检索数据:
select * from Oil Where date(DDate)=date('2012-08-07');
其中DDate是Oil表中具有数据类型text的列之一。我得到 Arrayindexoutofboundsexception 。我发现它没有返回计数为0的任何值。 任何人都可以帮助我。我实际上要做的是在表中存储日期值。我找不到应该用于保存日期的数据类型,从sqlite网站是它没有特定的日期和时间的数据类型。
答案 0 :(得分:2)
SQL Server附带以下数据类型,用于在数据库中存储日期或日期/时间值:
DATE - 格式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';
答案 1 :(得分: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无关。