我有一列以秒为单位的整数值,即:
Seconds
234555
1123
44567
我需要选择该列,但返回值应采用以下形式1d 13h 23m
我应该如何制定 sql 查询?
我有一列以秒为单位的整数值,即:
Seconds
234555
1123
44567
我需要选择该列,但返回值应采用以下形式1d 13h 23m
我应该如何制定 sql 查询?
select
CAST(seconds/60/60/24 as VARCHAR) + 'd ' +
CAST(seconds/60/60%24 as VARCHAR) + 'h '+
CAST((seconds/60)%60 as VARCHAR) + 'm ' +
CAST(seconds%60 as VARCHAR) + 's'
from your_table
我已根据您的评论更新了我的回复
假设值来自名为 INTERVAL 的列,您可以使用 CONVERT 函数并为其指定“样式”代码。请参阅http://msdn.microsoft.com/en-us/library/aa237895(v=sql.80).aspx
SELECT CONVERT(varchar, DATEADD(ms, INTERVAL * 1000, 0), 114)
样式代码114
表示hh:mi:ss:mmm
24 小时格式,如果间隔超过一个世纪,则在年份上加上世纪。如果您不需要世纪数字,只需14
用作样式代码。
不是一个好的解决方案,但无论如何
declare @day int
declare @tmpHour int
declare @Hour int
declare @tmpMinute int
declare @Min int
select @day = Seconds_Column/ (24*60*60),@tmpHour = Seconds_Column%(24*60*60)
from yourTable
select @Hour = @tmpHour / (60*60)
select @tmpMinute = @tmpHour%(60*60)
select @Min = @tmpMinute/60
select cast(@day as varchar) + ' day '+
cast(@Hour as varchar) + ' hour ' +
cast(@Min as varchar) + ' min'