sql时间段
① sql语句如何删除一段时间内的记录
1、使用BETWEEN关键字根据时间字段删除一定时间内的记录
DELETEFROM表名WHERE时间字段BETWEEN开始时间AND结束时间
示例:
'2017-01-0100:00:00'AND'2017-02-0100:00:00'
--删除tb表中2017年1月1日到2017年2月1日的数据
2、使用时间字段比较大小来确定删除范围
--语法:
DELETEFROM表名WHERE时间字段>=开始时间AND时间字段<=结束时间
示例:
DELETEFROMtbWHERECreateTime>='2017-01-0100:00:00'ANDCreateTime<='2017-02-0100:00:00'
② SQL时间段比较
CASE WHEN( KSSJ<JSSJ
AND B<KSSJ
AND A<B)
OR (KSSJ<JSSJ AND A>JSSJ AND A<B)
就满足,就是 kssj小于jssj,并且 输入的结束时间小于 kssj 满足
或者 kssj小于jssj,并且 输入的开始时间大于 jssj满足 就这2中情况
③ sql查询时间段
select * from 表 where 日期字段>='开始日期' and 日期字段<='截止日期'
and convert(char(8),日期字段,108)>='开始时间' and convert(char(8),日期字段,108)<='截止时间'
例如:
select * from tb1 where dDate>='2010-11-05' and dDate<='2010-11-15'
and convert(char(8),dDate,108)>='22:30:00' and convert(char(8),dDate,108)<='23:00:00'
④ 关于SQL时间段查询
Select * From 表名
Where to_date(日期字段,'mm/dd/yyyy hh24:mi:ss') Between
to_date('2/1/2008 00:00:00','mm/dd/yyyy hh24:mi:ss')
And to_date('2/15/2008 23:59:59 hh24:mi:ss')
日期字段最好强转下格式用to_date()
⑤ sql查询时间段
假设A表的时间字段为A_Date,B表的字段为B_Date,再假设A表的ID为B表A_Id的FK,因此建议你可以试用如下语句:
select datediff(day,A.A_Date,B.B_Date) from A,B where a.ID=b.A_Id
其中:day代表这A_Date与B_Date时间之间的天数;该参数还有其他格式,请搜索SQL帮助;
另外也可以使用select A.A_Date-B.B_Date from A,B where a.ID=b.A_Id
该语句得出的时间是距离1900-01-01 00:00:00起的时间值
⑥ 如何在SQL中按时间段查询数据
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中的日期有一点不一样。
(6)sql时间段扩展阅读:
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
⑦ SQL时间段的查询问题如何解决
SQL时间段的查询有两个解决代码:
1、select * from table where date between '2007-10-01' and '2008-10-01'
2、select * from table where date>'2007-10-01' and date<'2008-10-01'
其中,between包含了两头的日期,and不包含。
⑧ sql合并多个时间段
如果是oracle 我会使用一个临时表,包含人员,持续开始时间,持续结束时间,处理任务,处理方法如下
首先取出某员工一天的所有工作记录,按开始时间排序后逐条处理
首先将第一条记录插入到临时表中,持续开始时间为 开始时间,持续结束时间为结束时间,处理任务为1;
在取到后续记录时,作如下处理
如果开始时间 > 临时表中已经存在的所有结束时间,则新增一条记录,与第一条处理方式一致;
如果开始时间 <=临时表中已经存在的某一结束时间处理如下
如果 结束时间 <=临时表中已经存在的某一结束时间,不作任何插入和更新;
如果 结束时间 >临时表中已经存在的某一结束时间,更新临时表中对应记录为当前取到的结束时间;
按照以上规则直至所有数据均处理完成,此时临时表中获得的是不重叠的所有工作时间,采用group 即可获得一天是实际工作时间,进而可以求出休息时间。
⑨ SQL语句查询特定时间段的数据怎么写
SQL服务器:
Select*fromtablewhere'2008-7-1'和'2008-12-31'
访问:
从表中选择发生日期>#2008-7-1#和发生日期<#2008-12-31#
就是这样:注意,SQLserver中的日期和访问有一点不同。
(9)sql时间段扩展阅读:
SQL查询日期语句
Select*fromShopOrderwheredatediff(week,ordTime,getdate()-1)=0//查询第一年的日期
Select*fromShopOrder,其中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*
FROMj_GradeShop
其中(GAddTimeBETWEENCONVERT(datetime,LEFT(GETDATE(),10)+'00:00:00.000'))
并转换(datetime,LEFT(GETDATE(),10)+'00:00:00.00.000')+1)
由GAddTime指定的订单
⑩ SQL时间段的查询问题!!!!
开始>'开始时间' and 结束<='结束时间'