-2

我需要将 checkintime 列分开为 AM 作为 checkin 和 PM 作为结帐;

在此处输入图像描述

4

2 回答 2

0

几天前我开发了一个考勤系统。大多数考勤机只是为您的条目保存一个日志。如果一名员工打了 5 次拳,则该员工当天将有 5 次进入。我所做的是我将员工一天的所有条目分开,并将第一个和最后一个条目用于签入和签出。用 AM/PM 查询不是一个好主意,check-in 或 checkout 都可以是 AM 或 PM。

于 2016-05-12T07:06:16.350 回答
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 

更多信息请点击这里

或者试试这个解决方案 -

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

更多信息请点击这里

于 2016-01-29T05:18:09.077 回答