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

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

一小时制

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

半小时制

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

--如果是一小时时间段
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. Spring配置bean的详细知识

    在Spring中配置bean的一些细节.具体信息请参考下面的代码及注释 applicationContext.xml文件 <?xml version="1.0" encodi ...

  2. asp.net微信公众平台开发

    http://mp.weixin.qq.com/wiki/index.php?title=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E6%8C%87%E5%8D%97 ...

  3. android中常用的弹出提示框

    转自:http://blog.csdn.net/centralperk/article/details/7493731 我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的 ...

  4. [转] Android SDK manager 无法获取更新版本列表

      打开这个网址(LINK)就可以看到adt的详细信息. 或者直接在你的eclipse的Help > Install New Software里面add,地址直接输入 https://dl-ss ...

  5. JMX学习一

    JMX        即 Java Management Extensions   Java管理扩展MBean   即 managed beans                         被管 ...

  6. 结构型:代理模式 Vs 适配器模式 Vs 门面模式(外观模式)

    先上UML图 代理模式: 适配器模式: 门面模式(外观模式): 打了例子……呃……举个比方 代理模式: 水浒街,西门庆看上潘金莲,想和她嘿咻嘿咻,但是自己有不能去找潘金莲去说,于是他找到了金牌代理人王 ...

  7. openvpn文本验证模式配置

    证书模式要为每个客户端生成一个证书,虽说安全性较好,但是比较麻烦,可以配置成用户名/密码的验证模式,这样就比较方便了,我这里用最简单的文本验证模式. 一.安装openvpn 不多说了,之前有篇文章已经 ...

  8. PDF/WORD/EXCEL 图片预览

    一.PDF/WORD/EXCEL 转 XPS 转 第一页内容 转 图片 WORD.EXCEL转XPS (Office2010) public bool WordToXPS(string sourceP ...

  9. IComparer接口与

    IComparable比较接口,继承此接口可对lis<T>调用sort进行排序 或者调用sort时可以为sort方法提供继承了IComparer的比较器

  10. grails2.3.11第一课

    以指令的方式Getting Started 1. 创建一个项目 grails create-app HelloGrails 2. 因为我环境变量中配置的jdk是1.8的,所以我要把这个项目搞到IDEA ...