我需要将checkintime列分为AM作为checkin和PM作为checkout;
答案 0 :(得分:0)
尝试此查询..在like子句中添加搜索条件。
SELECT CASE
WHEN checktime LIKE '%AM%' THEN LEFT(checktime, Charindex(' ', checktime) - 1)
ELSE name
END,
CASE
WHEN checktime LIKE '%PM%' THEN RIGHT(checktime, Charindex(' ', Reverse(checktime)) - 1)
END
FROM YourTable
有关详情here
或尝试此解决方案 -
select ParsedData.*
from MyTable mt
cross apply ( select str = mt.String + ',,' ) f1
cross apply ( select p1 = charindex( ',', str ) ) ap1
cross apply ( select p2 = charindex( ',', str, p1 + 1 ) ) ap2
cross apply ( select Nmame = substring( str, 1, p1-1 )
, Surname = substring( str, p1+1, p2-p1-1 )
) ParsedData
有关详情,请点击here
答案 1 :(得分:0)
我几天前开发了一个考勤系统。大多数考勤机只为您的录入保存日志。如果员工打了5次,那个员工当天就会有5次入职。我做了什么我把所有条目分开了一天的员工,并拿了第一个和最后一个条目来办理登机手续和退房。使用AM / PM查询不是一个好主意,办理登机手续或退房手续都可以是上午或下午。