ответ
вы не были предоставить образец данных. Поэтому я опробовал ваше требование с приведенным вами снимком выходной таблицы.
create table #val(id int, name varchar(40), checktime datetime)
insert into #val values (1,'a', '2015-01-01 09:30:00.000')
insert into #val values (2,'b', '2015-01-01 10:30:00.000')
insert into #val values (1,'a', '2015-01-01 10:30:00.000')
insert into #val values (2,'b', '2015-01-01 11:30:00.000')
select id, name, FORMAT(CAST(checkin AS DATETIME),'hh:mm tt') AS StartTime, FORMAT(CAST(checkout AS DATETIME),'hh:mm tt') AS Endtime
from
(
select id, name,min(checktime) checkin, max(checktime) checkout
from
#val
group by id,name )a
(Примечание:. Я использую SQL-Server 2012 Она имеет функцию форматирования для преобразования DateTime в AM и PM)
он очень благодарен за ваш ценный ответ. @bmsqldev –
, если он предоставит вам решение, пожалуйста, примите его как ответ – bmsqldev
Что делать, если есть несколько проверок и чатов? –
я развивающееся программное обеспечение посещаемости, тайминги пробивные как проверить и проверить будет хранить в одном столбце тип данных datetime вдоль идентификатора пользователя. Мне нужно отделить его от времени проверки в столбце и проверить в другом столбце идентификатор пользователя. SELECT CHECKINOUT.USERID,Ent_Staff.StaffName,CHECKINOUT.CHECKTIME FROM Ent_Staff INNER JOIN USERINFO ON USERINFO.BADGENUMBER=Ent_Staff.Bio_Id INNER JOIN Mas_Shift ON Mas_Shift.Shift_Id=Ent_Staff.Shift_Id INNER JOIN CHECKINOUT ON CHECKINOUT.USERID=USERINFO.USERID WHERE checkinout.CHECKTIME>= '01/27/2016' AND checkinout.CHECKTIME < '01/28/2016' AND checkinout.USERID IN (9,15) ORDER BY checkinout.CHECKTIME[i had posted the table view also][1]
Пожалуйста, задайте свой полный вопрос на этом сайте. Мы не поощряем скриншоты кода. – jasonszhao