需求:领导要求写时间段算法,格式如下

:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:

一小时制

:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:
:-:

半小时制

一小时制比较好解决,直接循环即可

--如果是一小时时间段
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时间段算法的更多相关文章

  1. oracle:SQL时间段

    oracle: SQL时间段 CREATEDATE between to_date('" + startDate + " 00:00:00','yyyy-mm-dd hh24:mi ...

  2. 分页sql存储过程算法

    /****** Object: StoredProcedure [dbo].[PRO_Pub_FenYe] Script Date: 08/04/2014 11:14:22 ******/ SET A ...

  3. 常用的SQL分页算法及对比

    SQL Server 2005引入的新方法. SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY keyField DESC) AS rowNum, * ...

  4. sql 时间段内没有的数据等于0

    如何实现没有的时间段中使用0来填充?? if object_id('[A]') is not null drop table [A] go create table [A]([日期] datetime ...

  5. SQL 时间段转换格式

    ), ): :57AM ), ): ), ): ), ): ), ): ), ): ), ): ), ): , ), ): :: ), ): :::827AM ), ): ), ): ), ): ), ...

  6. sql存储过程算法

    MSSQL执行 : exec proc_NAME ORACLE : beginproc_NAME;commit;end; 1.求素数 MSSQL; CREATE proc [dbo].[EXEC003 ...

  7. 电表读数归零回滚SQL处理算法

    在采集电表数据的时候,可以发现有些电表设备读数会发生回滚.这时候,如果单纯的累加计算用电量,就会出现负值.当然,这也许和电表的质量有关系. “RTQty”(当前读到的读数).“LastQty”(上次读 ...

  8. SQL SERVER 算法执行效率

    较差的性能 <---没有索引(为每个表执行表扫描) --->非聚集非覆盖索引(seek+局部有序扫描+lookups) ---> 聚集索引(seek+局部扫描) ---> 非聚 ...

  9. sql 时间段交叉查询是否有交集

    --双11活动结束时间大于当前服务器时间代表有效期的活动 --实现1 select * from ProdCar A where A.EndDate> GETDATE() and A.EndDa ...

随机推荐

  1. 解析activity之间数据传递方法的详解

    转自:http://www.jb51.net/article/37227.htm 本篇文章是对activity之间数据传递的方法进行了详细的分析介绍,需要的朋友参考下     1  基于消息的通信机制 ...

  2. HDU4578 Transformation 线段树

    这个题让我重新学习了加 乘 在区间的操作 题解:http://blog.csdn.net/guognib/article/details/25324025?utm_source=tuicool& ...

  3. lightoj 1019

    裸的最短路 dijkstra #include<cstdio> #include<string> #include<cstring> #include<ios ...

  4. Selenium-Python学习——通过XPath定位元素

    用Xpath定位元素的方法总是记不住,经常要翻出各种文档链接参考,干脆把需要用到的内容整到这个笔记中方便查找. Xpath是在XML文档中定位节点的语言.使用 XPath 的主要原因之一是当想要查找的 ...

  5. js,css压缩工具

    常见的js压缩工具: js commpress: 运行平台:windows系统, 优点:能自动压缩: 缺点:不能拖动文件压缩:只支持windows平台: s.press 运行平台:mac ox系统 优 ...

  6. MMU(what,how,todo)

    出处:http://www.100ask.org/bbs/forum.php?mod=viewthread&tid=11580&fromuid=5490 正文黑色,代码蓝色,重点标红. ...

  7. Android选项卡TabHost方式实现

    1.布局XML: <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android= ...

  8. HTTP 报文总结、外送两本电子书

    写在前面的话:喜欢这个比喻:如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹. HTTP是一个应用层协议,研究它的内容的确很枯燥,没啥意思,都是规定好的,我们只需要知道是什么就好了 ...

  9. leetcode@ [84/85] Largest Rectangle in Histogram & Maximal Rectangle

    https://leetcode.com/problems/largest-rectangle-in-histogram/ https://leetcode.com/problems/maximal- ...

  10. Windows性能监视器之CPU、硬盘、IO等监控方法详解-摘自网络

    一般操作系统性能主要涉及到的问题主要有:处理器使用情况.内存占有量.磁盘I/0操作以及网络流量等. 查看Windows性能情况,大部分情况下是通过 “Windows任务管理器”,可以通过在 ”命令行” ...