SELECT FROM 表明 WHERE 日期字段名 BETWEEN '20130101' AND '20130130'
或者:
SELECT FROM 表明 WHERE 日期字段名 BETWEEN CONVERT(datetime,'2013-01-01',120) AND CONVERT(datetime,'2013-01-30',120)
扩展资料:
注意事项
在写按时间段查询的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" 存放
--你想要的是不是这样?
--适用于SQL Server
declare @date1 datetime, @date2 datetime
set @date1 = '20140101'
set @date2 = '20140131'
select @date1 date1, @date2 date2,
sum(case when 预付日期 >=@date1 and 预付日期<=@date2 then 预付金额 else 0 end) 预付金额,
sum(case when 实付日期 >=@date1 and 实付日期<=@date2 then 实付金额 else 0 end) 实付金额,
sum(case when 入库日期 >=@date1 and 入库日期<=@date2 then 入库数量 else 0 end) 入库数量,
sum(case when 发票日期 >=@date1 and 发票日期<=@date2 then 发票金额 else 0 end) 发票金额
from table1
我刚写了一个MySQL的类似sql查询。
1、将年、月、日和小时组合成一个字符串
2、月日时如果不是两位,在前面补0
3、将字符和判断区间的字符串值进行比较
select from 表 where CONCAT(vyear
,LPAD(vmonth
,2,0),LPAD(vday,2,0),LPAD(Hour,2,0)) >= '2017081000' and CONCAT(vyear,LPAD(vmonth,2,0),LPAD(vday,2,0),LPAD(Hour,2,0)) <= '2017081023'
select from table
where CDate(Format(年月日,"yyyy-mm-dd")+时分秒)>CDate('2012-01-01 19:00:00')
and CDate(Format(年月日,"yyyy-mm-dd")+时分秒)<CDate('2012-01-04 10:00:00')
以上就是关于sql server 日期范围查询全部的内容,包括:sql server 日期范围查询、SQL日期区间查询、sqlserver 数据库查询一个时间段根据年月日三个字段,注意是三个字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)