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

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

谢谢大家了。
展开
 我来答
大野瘦子
高粉答主

2018-12-30 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.2万
展开全部

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

改长征咎姬
2020-05-19 · TA获得超过3.7万个赞
知道小有建树答主
回答量:1.4万
采纳率:27%
帮助的人:779万
展开全部
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个字段
日期
,时间,并用整形表示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柳菊宫巳
2019-08-07 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:33%
帮助的人:1261万
展开全部
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#
呵呵,希望能有帮助,^_^
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一零哑剧

2019-12-21 · TA获得超过2.6万个赞
知道大有可为答主
回答量:6.6万
采纳率:45%
帮助的人:2462万
展开全部
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中的日期有一点不一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
登长征郎璧
2019-01-21 · TA获得超过3.6万个赞
知道小有建树答主
回答量:1.4万
采纳率:31%
帮助的人:766万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式