【发布时间】:2013-08-05 15:44:45
【问题描述】:
您好,我需要进行查询,比较两个日期并选择在这两个日期之间创建的所有对象。
我的日期字段是文本类型。
我进行了一些测试,显然日期是以 YYYY-MM-DD 格式存储的。
我正在使用此代码进行查询:
return bd.query("Gasto", null , "Fecha_Creado between '"+fecha1+ "' and '"+fecha2+"'", null, null, null, "Fecha_Creado DESC", null);
这段代码用于检索日期并将它们传递给上一个函数
return bd.obtenerGastosVar(fecha.get(Calendar.YEAR)+"-"+(fecha.get(Calendar.MONTH)+1)+"-1",
fecha.get(Calendar.YEAR)+"-"+(fecha.get(Calendar.MONTH)+1)+"-"+fecha.getActualMaximum(Calendar.DAY_OF_MONTH), ordenadoPor);
所以最终结果应该是一个查询:
select * from gasto where date1 和 date2 之间的日期
所以那是
select * from gasto where date between 2013-8-1 and 2013-8-31
所以,该查询应该与之前的 YYYY-MM-DD 进行日期比较。
我期待在这两个日期之间创建的对象,但它不起作用。一个小时前它还在工作
我做了一些有趣的事情并用于查询日期,DD-MM-YYYY 格式。这显然是有效的,但我担心使用这种格式进行查询会带来不可靠的结果。
那么我怎样才能解决这个问题并仍然获得可靠的结果?
感谢您的帮助
【问题讨论】:
-
"我的日期字段是文本类型。" - 这是你的第一个问题。将日期存储为日期,而不是文本。
-
好吧,我在 sqlite 中使用了日期,但给了我更多问题。我切换到这些日期的文本,除此查询外,一切正常。奇怪的是,使用不同的格式会产生不错的结果,但我认为它们并不准确