sql时间段算法
需求:领导要求写时间段算法,格式如下
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
一小时制
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
半小时制
一小时制比较好解决,直接循环即可
--如果是一小时时间段
DECLARE @a INT
SET @a=7
WHILE @a<23
BEGIN
PRINT REPLICATE('',2-len(@a))+CAST(@a AS VARCHAR(10))+':00-'+REPLICATE('',2-len(@a+1))+CAST(@a+1 AS VARCHAR(20))+':00'
SET @a=@a+1
END
半小时制
--如果是半小时时间段
--07:30-23:30
DECLARE @start VARCHAR(20)
DECLARE @end VARCHAR(20)
SET @start='07:00'
SET @end='22:00' DECLARE @b INT
SET @b=CAST(LEFT(@start,2) AS INT)--取小时数
WHILE @b<CAST(LEFT(@end,2) AS INT)
BEGIN
DECLARE @str VARCHAR(10)
DECLARE @str1 VARCHAR(10)
SET @str=CAST(@b AS VARCHAR(10))
SET @str=REPLICATE('',2-len(@str))+@str
SET @str1=CAST(@b+1 AS VARCHAR(10))
SET @str1=REPLICATE('',2-len(@str1))+@str1
IF(CHARINDEX('',@start)>0)--如果开始时间包含半小时
BEGIN
PRINT @str+':'+''+'-'+@str1+':00'
IF((@str1+':00')=@end)
BREAK
PRINT @str1+':00'+'-'+@str1+':30'
END
ELSE
BEGIN
PRINT @str+':00'+'-'+@str+':30'
PRINT @str+':'+''+'-'+@str1+':00'
IF(@b=(CAST(LEFT(@end,2)AS INT)-1) and CHARINDEX('',@end)>0)--如果结尾时间有半小时
PRINT @str1+':'+''+'-'+@str1+':30'
END
SET @b=@b+1
END
半小时制感觉写的不好,智商捉鸡,欢迎各路大神指正。
sql时间段算法的更多相关文章
- oracle:SQL时间段
oracle: SQL时间段 CREATEDATE between to_date('" + startDate + " 00:00:00','yyyy-mm-dd hh24:mi ...
- 分页sql存储过程算法
/****** Object: StoredProcedure [dbo].[PRO_Pub_FenYe] Script Date: 08/04/2014 11:14:22 ******/ SET A ...
- 常用的SQL分页算法及对比
SQL Server 2005引入的新方法. SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY keyField DESC) AS rowNum, * ...
- sql 时间段内没有的数据等于0
如何实现没有的时间段中使用0来填充?? if object_id('[A]') is not null drop table [A] go create table [A]([日期] datetime ...
- SQL 时间段转换格式
), ): :57AM ), ): ), ): ), ): ), ): ), ): ), ): ), ): , ), ): :: ), ): :::827AM ), ): ), ): ), ): ), ...
- sql存储过程算法
MSSQL执行 : exec proc_NAME ORACLE : beginproc_NAME;commit;end; 1.求素数 MSSQL; CREATE proc [dbo].[EXEC003 ...
- 电表读数归零回滚SQL处理算法
在采集电表数据的时候,可以发现有些电表设备读数会发生回滚.这时候,如果单纯的累加计算用电量,就会出现负值.当然,这也许和电表的质量有关系. “RTQty”(当前读到的读数).“LastQty”(上次读 ...
- SQL SERVER 算法执行效率
较差的性能 <---没有索引(为每个表执行表扫描) --->非聚集非覆盖索引(seek+局部有序扫描+lookups) ---> 聚集索引(seek+局部扫描) ---> 非聚 ...
- sql 时间段交叉查询是否有交集
--双11活动结束时间大于当前服务器时间代表有效期的活动 --实现1 select * from ProdCar A where A.EndDate> GETDATE() and A.EndDa ...
随机推荐
- NopCommerce架构分析之参考资料
http://www.cnblogs.com/RobbinHan/archive/2011/11/30/2269537.html 依赖注入框架Autofac的简单使用 http://www.cnblo ...
- Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1
这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Fram ...
- uboot环境变量与内核MTD分区关系
uboot 与系统内核中MTD分区的关系: 分区只是内核的概念,就是说A-B地址放内核,C-D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等. 1:在内核MTD中可以定义分区A~B, ...
- Javascript 知识点简介
如何在HTML中引入JS? 所有重定向的HTML标签内都可以嵌入javascript代码. 浮点数不要用 == 来进行判断 var num=0; for(var i=0;i<10;i++) ...
- uvalive 4513 Stammering Aliens
题意:给你一个串,问期中至少出现m次的最长子串及其起始位置的坐标. 思路:hash+LCP+二分答案 #include<cstdio> #include<cstring> #i ...
- Node.js中的ORM
ORM2是一款基于Node.js实现的ORM框架,名字相当的霸气,算是同类框架中非常出色的一款,具体介绍请猛击:https://github.com/dresende/node-orm2 刚接触Nod ...
- leetcode@ [136/137] Single Number & Single Number II
https://leetcode.com/problems/single-number/ Given an array of integers, every element appears twice ...
- linux oracle10g安装
同样适合11g哦,亲; 一.安装系统 首先安装Linux系统,根据Oracle官方文档的建议,在机器内存小于1G的情况下,swap分区大小应该设置为内存的2倍大,若内存大于2G则swap分区设置为与内 ...
- HDU4862-Jump(最大流量最大费用流)
题意:有n*m的格子,每一个格子包含一个数字,0-9.你初始的能量为0,你可以玩k次,每一个你可以选择你现在的格子的正下方或者正右方的任意一个格子跳,但必须是之前没有跳过的格子.每玩一次你都可以跳任意 ...
- sublime text2注册码
----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC ...