zoukankan      html  css  js  c++  java
  • sql时间段算法

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

    07:00-08:00
    08:00-09:00
    09:00-10:00
    10:00-11:00
    11:00-12:00
    12:00-13:00
    13:00-14:00
    14:00-15:00
    15:00-16:00
    16:00-17:00
    17:00-18:00
    18:00-19:00
    19:00-20:00
    20:00-21:00
    21:00-22:00
    22:00-23:00
    一小时制
    07:00-07:30
    07:30-08:00
    08:00-08:30
    08:30-09:00
    09:00-09:30
    09:30-10:00
    10:00-10:30
    10:30-11:00
    11:00-11:30
    11:30-12:00
    12:00-12:30
    12:30-13:00
    13:00-13:30
    13:30-14:00
    14:00-14:30
    14:30-15:00
    15:00-15:30
    15:30-16:00
    16:00-16:30
    16:30-17:00
    半小时制

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

    --如果是一小时时间段
    DECLARE @a INT
    SET @a=7
    WHILE @a<23
    BEGIN
    PRINT REPLICATE('0',2-len(@a))+CAST(@a AS VARCHAR(10))+':00-'+REPLICATE('0',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('0',2-len(@str))+@str
    SET @str1=CAST(@b+1 AS VARCHAR(10))
    SET @str1=REPLICATE('0',2-len(@str1))+@str1
    IF(CHARINDEX('30',@start)>0)--如果开始时间包含半小时
    BEGIN
    PRINT @str+':'+'30'+'-'+@str1+':00'
    IF((@str1+':00')=@end)
    BREAK
    PRINT @str1+':00'+'-'+@str1+':30'
    END
    ELSE
    BEGIN
    PRINT @str+':00'+'-'+@str+':30'
    PRINT @str+':'+'30'+'-'+@str1+':00'
    IF(@b=(CAST(LEFT(@end,2)AS INT)-1) and CHARINDEX('30',@end)>0)--如果结尾时间有半小时
    PRINT @str1+':'+'00'+'-'+@str1+':30'
    END
    SET @b=@b+1
    END

    半小时制感觉写的不好,智商捉鸡,欢迎各路大神指正。

  • 相关阅读:
    CentOS 软件安装(yum 和 rpm)
    Ubuntu下的 PPPoE 拨号上网方法
    Vim 去除因为 Unix 和 Windows 换行符不同带来的 ^M 问题
    Python 在 Windows 下安装第三方包,报 Python 未注册的问题解决
    scipy 安装错误及解决
    Python 字典一个易犯的错误
    Linux查看系统信息
    系统更新报错--NO_PUBKEY
    关于直播的技术整理2
    关于直播的技术整理
  • 原文地址:https://www.cnblogs.com/xiefengdaxia123/p/6017669.html
Copyright © 2011-2022 走看看