当前位置: 代码迷 >> Sql Server >> 关于一个语句,新手第一次提问^O^ ,请指导
  详细解决方案

关于一个语句,新手第一次提问^O^ ,请指导

热度:325   发布时间:2016-04-24 09:20:50.0
关于一个语句,新手第一次提问^O^ ,请大虾指导!
请看下面语句,关于每小时销售额的查询!

select convert(VARCHAR(2),TransTime,114)+':00:00-' + cast(cast(convert(VARCHAR(2),TransTime,114) as int)+1 as varchar)+':00:00' as 每小时,SUM(PayAmt) as 金额
from dbo.TransSku
where DataSource ='1' and TransTime between '2015-02-18' and '2015-02-24'
GROUP BY convert(VARCHAR(2),TransTime,114) order by 每小时

实际效果如下图:


我就想问问,时间这一段感觉自己写的好傻,把varchar变成了int 就为了+1,然后又变回varchar,有没有更好的写法....

以上本人是新手哈,希望各位高手指导指导小弟!



------解决思路----------------------
呃,没注意,那可以用LTRIM(每小时+1)方式,快速转为数字再转为字符串
SELECT 每小时+':00:00-'+LTRIM(每小时+1)+':00:00' AS 每小时,金额
FROM(
select convert(VARCHAR(2),TransTime,114) as 每小时,SUM(PayAmt) as 金额
from dbo.TransSku
where DataSource ='1' and TransTime between '2015-02-18' and '2015-02-24'
GROUP BY convert(VARCHAR(2),TransTime,114)
)T
order by 每小时
  相关解决方案