Пожалуйста, попробуйте это.
SELECT
CONVERT(TIME,CASE WHEN RIGHT(datepart(minute,BeginTime),1) = 1
THEN
CONVERT(VARCHAR(2),datepart(Hour,BeginTime)) +':'
+ CONVERT(VARCHAR(2),datepart(minute,BeginTime) - 1)
+':'
+ CONVERT(VARCHAR(2),datepart(second,BeginTime))
ELSE
CONVERT(VARCHAR(8),BeginTime)
END)
FROM @tbl
Например
Declare @tbl Table(
ArrangeId INT ,
BeginTime TIME,
EndDate NVARCHAR(50),
DeptId INT
)
INSERT INTO @tbl VALUES(1,'7:20:00','22:30',NULL)
INSERT INTO @tbl VALUES(3,'7:10:00','23:00',NULL)
INSERT INTO @tbl VALUES(2,'7:11:00','23:59',NULL)
INSERT INTO @tbl VALUES(4,'6:10:00','22:30',NULL)
INSERT INTO @tbl VALUES(4,'5:11:00','22:30',NULL)
INSERT INTO @tbl VALUES(4,'5:31:00','22:30',NULL)
SELECT
CONVERT(TIME,CASE WHEN RIGHT(datepart(minute,BeginTime),1) = 1
THEN
CONVERT(VARCHAR(2),datepart(Hour,BeginTime)) +':'
+ CONVERT(VARCHAR(2),datepart(minute,BeginTime) - 1)
+':'
+ CONVERT(VARCHAR(2),datepart(second,BeginTime))
ELSE
CONVERT(VARCHAR(8),BeginTime)
END)
FROM @tbl