sql日期范围
A. sql查询日期范围内时间范围
where CONVERT(varchar(100), markdate+marktime, 25)>='2018-01-02 8:00:00.000' and CONVERT(varchar(100), markdate+marktime, 25)<='2018-01-03 8:00:00.000'
B. sql 时间范围查询
declare @x varchar(10)
set @x='23:03:00'
select * from 表 where 开始时间<@x and (结束时间<BeginD or 结束时间>@x)
C. 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'
D. sql日期范围查询
后台只需要判断这两个值是否为空就行了,然后拼接语句的时候
where 数据库日期 >= 开始日期 and 数据库日期 <= 结束日期
这样应该就可以
E. sql里面如何设置查询的时间范围
对 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#
F. 用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
G. 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)
(7)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" 存放
H. sql 查询时间、日期范围内的数据
SELECT*
FROMTableName
WHERECONVERT(DATETIME,CONVERT(VARCHAR,日期列)+''+CONVERT(VARCHAR,时间列))BETWEEN'2012-1-107:00:00'AND'2012-1-410:00:00'
I. 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)
(9)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_网络
J. SQL Server中datetime范围的限制
现在数据库中有数据没有,,,如果有数据看看现在的数据是不是不满足条件。。
这个语句开始建立的是什么样子的
alter table student
add constraint ch_bir check(birthday>'1980-1-1' and birthday<'2000-1-1')
掉了吧。add
日期格式没有问题。。