关于在存储过程里时间计算的一个问题,看看要怎么写?

loye 2006-09-20 04:15:25
比如我要计算分钟

60秒以下算1分钟
60--120算2分钟 依次类推,不知道怎么写
...全文
150 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellowork 2006-09-20
  • 打赏
  • 举报
回复
declare @t table(秒 int)
insert @t
select 59 union all
select 60 union all
select 90 union all
select 120 union all
select 130

select 秒,分钟 = floor(1.0*秒/61) + 1 from @t

/*结果
秒 分钟
----------------------------
59 1
60 1
90 2
120 2
130 3
*/
ww3347 2006-09-20
  • 打赏
  • 举报
回复
cast(@a/60 as int)+1
cast((@a-0.001)/60 as int ) +1
子陌红尘 2006-09-20
  • 打赏
  • 举报
回复
首先,可以用datediff()取得秒数差,然后再与60相除及取模以得出最后的值。
ww3347 2006-09-20
  • 打赏
  • 举报
回复
60算多少?1还是2?
九斤半 2006-09-20
  • 打赏
  • 举报
回复
参考这个:

-- SQL时间取整的问题
CREATE TABLE TEST(Startdate datetime)
insert test VALUES (getdate())
go

-- 取整,小时不加1
SELECT StartDate,
CAST
(
CONVERT(VARCHAR(10),StartDate,120) + ' ' +
CONVERT(VARCHAR,DATEPART(hh, StartDate))+ ':00:00'
AS datetime
) AS [取整(舍掉分秒)]
FROM TEST
go


-- 取整,小时数加1
SELECT startdate,
dateadd(
hour,

CASE WHEN DATEPART(minute, startdate)> 0 OR
DATEPART(second, startdate) > 0 OR
DATEPART(millisecond, startdate) > 0
THEN 1 ELSE 0 END,

CAST(
CONVERT(VARCHAR(10),StartDate,120) + ' ' +
CONVERT(VARCHAR,DATEPART(hh, StartDate))+ ':00:00'
AS datetime)
) as [取整(舍掉分秒,小时加1)]
FROM TEST
go

drop table test
go

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧