SQL查询每日考勤记录



你能帮我用query转换这个数据吗?

<表类> id datetime 状态 tbody><<tr>12022-04-01 07:38:31在12022-04-01 12:07:17在12022-04-01 12:07:39打破12022-04-01 16:43:17时间12022-04-02 07:38:31在12022-04-02 12:07:39打破

你需要使日期函数正确的SQL类型你正在使用,这是T-SQL (MS SQL Server)代码:

SELECT ID, 
convert(date,Datetime,111) as Day,
MAX(CASE WHEN status = 'Time In' THEN Datetime ELSE NULL END) as TimeIn,
MAX(CASE WHEN status = 'Break In' THEN Datetime ELSE NULL END) as BreakIn,
MAX(CASE WHEN status = 'Break Out' THEN Datetime ELSE NULL END) as BreakOut,
MAX(CASE WHEN status = 'Time Out' THEN Datetime ELSE NULL END) as TimeOut
FROM mytest
GROUP BY ID, 
convert(date,Datetime,111)

一个建议:考虑更改datetime列的名称——给一个列一个保留词作为列名会在某些时候回来困扰你。

同样,如果您只想要时间部分,那么应用任何适合您的SQL风格的逻辑来从Datetime解析它。

相关内容

  • 没有找到相关文章

最新更新