SQLite数据库-选择两个日期之间的数据?
我想按日期选择我的数据-从一个日期到另一个日期,所以我有这个查询SQLite数据库-选择两个日期之间的数据?,sql,select,sqlite,Sql,Select,Sqlite,我想按日期选择我的数据-从一个日期到另一个日期,所以我有这个查询 SELECT * FROM mytalbe WHERE date BETWEEN '2014-10-09' AND '2014-10-10' 但此查询仅返回“2014-10-09”中的数据,不包括“2014-10-10”中的数据,除非我将查询更改为以下内容 SELECT * FROM mytalbe WHERE date BETWEEN '2014-10-09' AND '2014-10-11' 这不是一个理想的解决方案。如何
SELECT * FROM mytalbe WHERE date BETWEEN '2014-10-09' AND '2014-10-10'
但此查询仅返回“2014-10-09”中的数据,不包括“2014-10-10”中的数据,除非我将查询更改为以下内容
SELECT * FROM mytalbe WHERE date BETWEEN '2014-10-09' AND '2014-10-11'
这不是一个理想的解决方案。如何选择包含“2014-10-10”中数据的数据
注:
我认为我的问题不同于其他重复的问题,因为
我的日期类型是文本
我需要选择没有时间的日期数据。
这是一个sqlite数据库。。。
我的数据样本
sid nid timestamp date
1 20748 5 1412881193 2014-10-09 14:59:53
2 20749 5 1412881300 2014-10-09 15:01:40
3 20750 5 1412881360 2014-10-09 15:02:40
如果日期是时间戳,则需要执行以下操作:
SELECT * FROM mytalbe WHERE date BETWEEN '2014-10-09 00:00:00' AND '2014-10-10 23:59:59'
或者你可以做,我相信:
SELECT * FROM mytalbe WHERE DATE(date) BETWEEN '2014-10-09' AND '2014-10-10'
或者,由于它是一个文本字段:
SELECT * FROM mytalbe WHERE DATE_FORMAT(date,'%Y-%m-%d') BETWEEN '2014-10-09' AND '2014-10-10'
你也可以不使用between 问题再次更新,补充答案 啊。你有时间戳字段吗?在这种情况下:
select date(from_unixtime(timestamp)) from mytabel where date(from_unixtime(timestamp)) between '2014-10-09' and '2014-10-10'
我们终于到达了sqlite
同样的问题解决了,谢谢。 我的代码:
var FechaInicio = dtpFechaInicial.Value.ToString("yyyy-MM-dd");
var FechaFinal = dtpFechaFinal.Value.ToString("yyyy-MM-dd");
string SQLcmd = $"SELECT * FROM sorteos WHERE DATE(fecha) BETWEEN ('{FechaInicio}') AND ('{FechaFinal}')";
日期是什么字段类型?“2014-10-11”表示10日午夜。就像在10号的第一分钟。要包含10号,您需要添加时间11:59或将其设为11号。日期类型为文本…日期类型为文本没有意义您的意思是您的日期存储为varchars吗?我理解,这是经常发生的。好吧,如果你有不同的日期类型,你可以用date_FORMATdate,“%m-%d-%Y”来让它们成为常规日期,谢谢。我已经试过了,但仍然没有得到“2014-10-10”中的数据。我认为问题在于日期类型是文本…@teelou那么你能在问题中发布你的表数据吗,因为从上面的例子中可以看到,查询在文本字段中的日期的效果与预期的一样。这个答案对日期时间类型做了同样的事情-你希望OP转换为Date@teelou它本质上意味着unix时间-即,将时间戳视为unix纪元(1970-01-01 00:00)之后的秒:00@teelou没问题。我猜这里至少有一个答案解决了你的问题,所以你可能应该接受其中一个。如果你将转换添加到上面的datetime注释,那么第二个查询就是正确的答案。谢谢更新。我通过sqliteSendQuerycon、语句、bind中的错误得到这个错误。数据:语句中的错误:没有这样的函数:日期\格式。。。sqlite?为什么这个问题用MySQL标记,但这仍然有效-从mytalbe中选择*其中DATEdate介于“2014-10-09”和“2014-10-10”之间您可以从一开始就提到,您还有一个时间戳字段:/
select substring(date, 1, 10) from dd where substring(date, 1, 10) between '2014-10-09' and '2014-10-10';
select date(from_unixtime(timestamp)) from mytabel where date(from_unixtime(timestamp)) between '2014-10-09' and '2014-10-10'
select date(datetime(timestamp, 'unixepoch'))
from mytable
where date(datetime(timestamp, 'unixepoch'))
between '2014-10-09' and '2014-10-10';
var FechaInicio = dtpFechaInicial.Value.ToString("yyyy-MM-dd");
var FechaFinal = dtpFechaFinal.Value.ToString("yyyy-MM-dd");
string SQLcmd = $"SELECT * FROM sorteos WHERE DATE(fecha) BETWEEN ('{FechaInicio}') AND ('{FechaFinal}')";