HH:SQL Server中的MM格式

Dha*_*ngh 1 sql-server

我使用存储过程,并且我有一个列名称timepent,我只想显示像HH:MM格式,程序工作正常,但唯一的问题是,目前花费的时间是hh:mm:ss格式.指导我如何花时间用HH:MM格式并尽可能纠正我的程序.程序是这样的: -

CREATE procedure St_Proc_GetUserReportforCurrentDayTask              
@userID int              
as              
Begin              
    set NoCount on;              
    DECLARE @TODAY DATE                
    SET @TODAY = CONVERT(VARCHAR(10), GETDATE(), 111)              
    select CONVERT(VARCHAR,production.CalendarDate,101) + RIGHT (CONVERT(VARCHAR,production.CalendarDate , 100 ) ,7) as Date,               
    RegionAndProjectInfo.RegionProjectName as Region ,              
    County.CountyName as County,              
    WorkType.WorkTypeName as WorkType,              
    Task.TaskName as Task,  
    Production.VolumeProcessed as 'Volumes Processed',              
    Production.TimeSpent as 'Duration (HH:MM)'              
    from Production               
    inner join RegionAndProjectInfo              
    on              
    RegionAndProjectInfo.RegionProjectID=Production.RegionProjectID              
    inner join County              
    on               
    County.CountyID=Production.CountyID              
    inner join WorkType              
    on              
    WorkType.WorkTypeID=Production.WorkTypeID              
    inner join Task              
    on              
    Task.TaskID=Production.TaskID              
    where Production.UserID=@userID and CalendarDate >= @TODAY              
End 
Run Code Online (Sandbox Code Playgroud)

yog*_*ogi 7

试试这个

select SUBSTRING( convert(varchar, getdate(),108),1,5)
Run Code Online (Sandbox Code Playgroud)

用您的列名替换getdate().

  • [请不要在没有长度的情况下使用`varchar`](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx ).不会`CONVERT(CHAR(5),GETDATE(),108)`更简单? (2认同)

Cri*_*ica 5

我试过了,它奏效了

declare @dt datetime
    set @dt = '07:30'
    select convert(varchar(5),@dt,108)
Run Code Online (Sandbox Code Playgroud)

  • 只是一个 nit 但并不真的需要成为 `varchar` 是吗?除了 5 个字符外,它永远不会返回任何内容...... (3认同)