A. sql 如何查询日期在一定范围内的数据
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 table1where year(d)=2010 and month(d)=7 and day(d) between 1 and 31
and (Datepart(hour,d)>=22 or Datepart(hour,d)<6)
(1)sql中的日期范围扩展阅读:
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_网络
B. sql日期时间段包含在一个范围内
select * from TO_ALARMS_SMS where 时间(时间所在的列名) BETWEEN '2018-1-1 07:00:00' AND '2018-3-4 10:00:00'
C. sql 语句如何查询日期范围
在两个日期之间毕歼禅 between “2012-1-1”改御 and "2012-12-12"; 日期手尘〉“2012-1-1” and 日期 < "2012-12-12" ;
D. sql里面如何设置查询的时间范围
分类宏物: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
我的SQL里面有一个“离岗时间”字段,我现在想设置条件“离岗时间”为2005年10月30日以前的,where语句应该怎么写?还有就是想要查询“离岗时间”为2005年1月日到2005年10月30日这段时间的,where语句应该怎么写?
where 离岗时间<#2005/10/30# 这样写好象不对
解析:
对 SQL SERVER 数据库
----------------------------
SELECT * FROM 表名 WHERE 离岗蔽高液时间<'2005-10-30'
SELECT * FROM 表名 WHERE 离岗时间 BETWEEN '2005-1-1' AND '2005-10-30'
------------------------------------
对 ACCESS
----------------------------
SELECT * FROM 表名 WHERE 离岗时间<#2005-10-30#
SELECT * FROM 表念培名 WHERE 离岗时间 BETWEEN #2005-1-1# AND #2005-10-30#
E. sql server 日期范围查询
SELECT * FROM 表明 WHERE 日期字段名 BETWEEN '20130101' AND '20130130'
或者:
SELECT * FROM 表明 WHERE 日期字段名 BETWEEN CONVERT(datetime,'2013-01-01',120) AND CONVERT(datetime,'2013-01-30',120)
(5)sql中的日期范围扩展阅读:
注意事项
在写按时间段查询的sql语句的时候 一般我们会这么写查询条件:
where date>='2010-01-01' and date<='2010-10-1'。
但是在实执行Sql时些语句会转换成这样:
where date>='2010-01-01 0:00:00' and date<='2010-10-1:0:00:00',再看这个条件的话,就会有些明白,那就是'2010-10-1 0:00:00' 之后的数据例如('2010-10-1:08:25:00')查不到,也就是说2010-10-1的数据查不到。
修改查询条件为:
where date>='2010-01-01' and date<='2010-10-1 23:59:59' 或 where date>='2010-01-01' and date<='2010-10-2'。
某个表某个字段是Datetime型 以"YYYY-MM-DD 00:00:00" 存放
F. sql 查询时间、日期范围内的数据
SELECT*
FROMTableName
WHERECONVERT(DATETIME,CONVERT(VARCHAR,日期列)+''+CONVERT(VARCHAR,时间列))BETWEEN'2012-1-107:00:00'AND'2012-1-410:00:00'
G. SQL数据库中如何筛选某一个表中的时间字段的范围
例如:表a中的datetime字段都是‘2013-05-11 13:10:00‘这种格式的,筛选凳耐罩其中8:00到10:00之间的。
select * from 表a
where substring(convert(varchar,字段名,120),12,8) between '枣闹08:00:00' and '10:00:00'
H. 用sql语句如何判断年、月、日是否在日期范围呢
你是要 判断一个 varchar 类型的 数据, 是不是 日期类型?
也就是相当于一个 ISDate() 函数的判断么?
如果是 SQL Server 的话, 已经有这样的函数了。
1> select isdate('2012-10-10') A, isdate('2012-13-13') B
2> go
A B
----------- -----------
1 0
(1 行受影响)
如果是 Oracle 数据库的话, 可以尝试 TO_DATE 再捕获异常的方式进行处理。
create or replace function isdate(p_date in varchar2)
return number
as
v_date date;
begin
v_date:=to_date(p_date, 'YYYY-MM-DD');
return 1; --正确
exception
when others then
return 0;
end;
SQL> select isdate('2012-10-10') A, isdate('2012-13-13') B FROM al;
A B
---------- ----------
1 0
I. SQL Server中datatime的表示的范围是多少到多少
在 Microsoft SQL Server中,日期和时间数据类型团磨包括Datetime 和塌核斗 Smalldatetime 两种类型时,所存储的日期范围是从 1753 年 1 月 1 日氏答开始,到9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。使用 Smalldatetime 数据类型时,所存储的日期范围是 1900年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。
J. SQL查询时间范围语句
以下为MS_SQL的写法分日期和小时条件;
select *
from xy
where
(id=27 or id=28)and convert(varchar(10),WRITETIME,120) between '2009-01-26' and '2009-02-06'
and
convert(varchar(8),WRITETIME,108) between '08:00:00'and '12:30:00'