SQL 如何查询日期在一定范围内的数据

在数据库中,日期字段为String类型,如20130101,怎样可以查询到日期在20130101到20130130的数据

select * from 表 where 日期字段>='开始日期' and 日期字段<='截止日期'  and convert(char(8),日期字段,108)>='开始时间' and convert(char(8),日期字段,108)<='截止时间'。

SELECT * FROM 表明 WHERE 日期字段名 BETWEEN '20130101' AND '20130130'。

例如:

select * from tb1 where dDate>='2010-11-05' and dDate<='2010-11-15' 
and convert(char(8),dDate,108)>='8:00:00' and convert(char(8),dDate,108)<='9:00:00'.

select * from table1 where year(d)=2010 and month(d)=7 and day(d) between 1 and 31
and (Datepart(hour,d)>=22 or Datepart(hour,d)<6)

扩展资料:

SQL查询日期:

今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0

昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1

7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7

30天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=30

本月的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate())=0

本年的所有数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0

参考资料:SQL_百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-09-10

查询方法:

select * from 表 where 日期>='20130101' and 日期<='20130130'。

扩展资料:

SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将它从数据库中查找出来。

SQL中的查询语句只有一个:SELECT,它可与其它语句配合完成所有的查询功能。SELECT语句的完整语法,可以有6个子句。

完整的语法如下:

SELECT 目标表的列名或列表达式集合

FROM 基本表或(和)视图集合

〔WHERE条件表达式〕

GROUP BY列名集合〔HAVING组条件表达式〕〕

〔ORDER BY列名〔集合〕…〕

简单查询,使用TOP子句。

查询结果排序order by

带条件的查询where,使用算术表达式,使用逻辑表达式,使用between关键字,使用in关键字,

模糊查询like。

参考资料:

百度百科—SQL数据库

本回答被网友采纳
第2个回答  2013-09-08
SELECT * FROM 表明 WHERE 日期字段名 BETWEEN '20130101' AND '20130130'追问

String类型也可以这样处理吗

追答

可以。最通用的:
SELECT * FROM 表明 WHERE 日期字段名 BETWEEN CONVERT(datetime,'2013-01-01',120) AND CONVERT(datetime,'2013-01-30',120)

本回答被提问者采纳
第3个回答  2021-03-26

第4个回答  2021-03-26