如何在SQL中按时间段查询数据

每条记录中有一个“发生日期”的字段,格式为“yyyy-mm-dd”格式,现在想做以下查询
1、查询“发生日期”为2008-07-01至2008-12-31这段时间内的数据;
2、查询“发生日期”为2009-01-01至2009-01-17这段时间内的数据.

谢谢大家了。

sql server:

select * from 表 where 发生日期>'2008-7-1' and 发生日期<'2008-12-31'

access:

select * from 表 where 发生日期>#2008-7-1# and 发生日期<#2008-12-31#

这样就可以了,注意sql server与access中的日期有一点不一样。

扩展资料:

sql查询日期语句

select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0   //查询当天日期在一周年的数据

select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0   //查询当天的所有数据

SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天

SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1  // 上一月

查询当天记录另类的方法:

SELECT * 

FROM j_GradeShop 

WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') 

AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1) 

ORDER BY GAddTime DESC

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-19
select
*
from
ms_cf01
a
where
a.kfrq
between
to_date('20100101
180000','yyyymmdd
hh24miss')
and
to_date('20101231
180000','yyyymmdd
hh24miss')
and
to_char(a.kfrq,'hh24miss')
between
'180000'
and
'240000'
主要用到
to_char,to_date对时间字段的转换方法,具体使用方法可baidu
如果这么查询,主要是第2个条件无法用上索引,所以最好的方式是在涉及表的时候将该字段拆成2个字段
日期
,时间,并用整形表示
第2个回答  2019-08-07
sql
server与access中的日期有一点不一样,
sql
server:
select
*
from

where
发生日期>'2008-7-1'
and
发生日期<'2008-12-31'
access:
select
*
from

where
发生日期>#2008-7-1#
and
发生日期<#2008-12-31#
呵呵,希望能有帮助,^_^
第3个回答  2019-12-21
sql server:

select * from 表 where 发生日期>'2008-7-1' and 发生日期<'2008-12-31'

access:

select * from 表 where 发生日期>#2008-7-1# and 发生日期<#2008-12-31#

这样就可以了,注意sql server与access中的日期有一点不一样。
第4个回答  2019-01-21
sql
server:
select
*
from

where
发生日期>'2008-7-1'
and
发生日期<'2008-12-31'
access:
select
*
from

where
发生日期>#2008-7-1#
and
发生日期<#2008-12-31#
这样就可以了,注意sql
server与access中的日期有一点不一样。
扩展资料:
sql查询日期语句
select
*
from
ShopOrder
where
datediff(week,ordTime,getdate()-1)=0
//查询当天日期在一周年的数据
select
*
from
ShopOrder
where
datediff(day,ordTime,getdate()-1)=0
//查询当天的所有数据
SELECT
*
FROM
A
where
datediff(d,datetime,getdate())
<=30
//前30天
SELECT
*
FROM
A
WHERE
DATEDIFF(m,
shijian,
GETDATE())
<=1
// 上一月
查询当天记录另类的方法:
SELECT
*
FROM
j_GradeShop
WHERE
(GAddTime
BETWEEN
CONVERT(datetime,
LEFT(GETDATE(),
10)
+
'
00:00:00.000')
AND
CONVERT(datetime,
LEFT(GETDATE(),
10)
+
'
00:00:00.000')
+
1)
ORDER
BY
GAddTime
DESC