3

私はストアドプロシージャを使用していて、HH:MM形式のみのように表示したい列Name timespentがあります。手順は正常に機能していますが、唯一の問題は、現在費やされている時間が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 
4

2 に答える 2

12

これを試して

select SUBSTRING( convert(varchar, getdate(),108),1,5)

getdate()を列名に置き換えます。

于 2012-06-23T08:11:10.653 に答える
5

私はこれを試しました、そしてそれはうまくいきました

declare @dt datetime
    set @dt = '07:30'
    select convert(varchar(5),@dt,108)
于 2012-06-23T08:15:23.913 に答える