2010-04-28 180 views
0

我试图查询某种从 - 到日期。 例如20-01-2010至20-02-2010。这应该包括提到的日期。查询日期范围

我试过以下查询,但没有任何作品。

select * 
    from [tableName] 
where date >= '20-01-2010' 
    AND date <= '20-02-2010' 

但日期等于20-02-2010的日期未显示。我不知道为什么。


select * 
    from [tableName] 
where date between '20-01-2010' 
      AND '20-02-2010' 

所提到的日期不包括在结果中。我希望它被包含在结果中。

请大家帮忙。

在此先感谢! :)

+2

您正在使用什么数据库? – Uri 2010-04-28 02:18:28

+0

“日期”字段的数据类型是什么? – lexu 2010-04-28 02:24:16

回答

0

感谢所有的答复。 我想出了问题。

以下查询不起作用的原因是因为日期字段的值由于日期时间而具有hh:mm:ss。如果您与普通日期进行比较,则时间部分将为0.这就是为什么具有日期“20-02-2010”的数据不会显示在我的结果集中,因为数据具有hh:mm:ss不等于'00 :00:00.000' 。

SELECT * FROM[tableName] WHERE date >= '20-01-2010' AND date <= '20-02-2010' 

下面的查询现在工作。只是增加了一个时间参数

SELECT* FROM [tableName] WHERE date >= '20-01-2010' AND date <= '20-02-2010 23:59:59.000' 

欢呼

1

请确保您的表中没有日期时间值,其中时间值不是0。在这种情况下,与您提供的上限日期相比,没有任何差异。

0
SELECT date 
FROM `test_table` 
WHERE date >= '2010-04-01' 
AND date <= '2010-04-30'; 

其实在mysql中工作。请记住,DATE type字段的标准结构是YYYY-MM-DD

+0

使用postgre sql和类型为datetime的日期 – klambiguit 2010-04-30 02:48:00