Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL Server格式化hh:mm_Sql_Sql Server 2008_Tsql_Date Formatting - Fatal编程技术网

使用SQL Server格式化hh:mm

使用SQL Server格式化hh:mm,sql,sql-server-2008,tsql,date-formatting,Sql,Sql Server 2008,Tsql,Date Formatting,我正在使用 CONVERT( CHAR(5), DATEADD(n, value),0), 108) 将分钟转换为hh:mm格式,但当我有更多分钟时,它会中断,然后适应24小时。例如,1440给出00:00而不是24:00 如何解决此问题?考虑使用%模运算符: select cast(n/60 as varchar(20)) + ':' + right('0' + cast(n%60 as varchar(2)), 2) 试着这样做: declare @minutes int

我正在使用

CONVERT( CHAR(5), DATEADD(n, value),0), 108)
将分钟转换为
hh:mm
格式,但当我有更多分钟时,它会中断,然后适应24小时。例如,
1440
给出
00:00
而不是
24:00


如何解决此问题?

考虑使用
%
模运算符:

select cast(n/60 as varchar(20)) + ':' + 
       right('0' + cast(n%60 as varchar(2)), 2)

试着这样做:

declare @minutes int
select @minutes = 1440

select convert(varchar, @minutes/60) + ':' + right ('0'+convert(varchar, @minutes%60), 2)

几乎有效,但它给出的是24:0而不是24:00。有没有机会解决这个问题?您可以在分钟前加上
'0'
,并取最右边的两个字符,回答editedFair。希望有一个更干净的解决方案,猜测代码并不总是诗意的。谢谢