--格式转换:
SELECT STUFF(CONVERT(VARCHAR(20),{FN NOW()},108),5,3,'')
--查询,先按天分组,然后把时间转换成int 计算范围..

解决方案 »

  1.   

    select convert(char(5),getdate(),108)
      

  2.   


    select right(convert(char(8),打卡时间,108),5) from [table]
      

  3.   

    每个员工的第一次大卡时间
    select 工号,min(打卡时间) from 表 group by 工号
      

  4.   

    CREATE TABLE #T([工号] int ,[打卡时间] datetime)
    INSERT INTO #T
    SELECT 1,'07:29' UNION ALL
    SELECT 1,'08:12' UNION ALL
    SELECT 1,'08:15' UNION ALL
    SELECT 1,'08:25' UNION ALL
    SELECT 2,'07:30' UNION ALL
    SELECT 2,'08:30' UNION ALL
    SELECT 2,'08:10' UNION ALL
    SELECT 2,'08:12'
    SELECT A.[工号],CONVERT(char(5),A.[打卡时间],108) AS [打卡时间]
    FROM #T AS A 
    WHERE CONVERT(char(5),A.[打卡时间],108) BETWEEN '08:10' AND '08:30'
    AND NOT EXISTS(SELECT 1 FROM #T AS B WHERE B.[工号]=A.[工号] AND B.[打卡时间]<A.[打卡时间] 
    AND  CONVERT(char(5),B.[打卡时间],108) BETWEEN '08:10' AND '08:30')
    DROP TABLE #T
    /*
    工号 打卡时间
    ---------------------
    1 08:12
    2 08:10
    */
      

  5.   

    SELECT 工号,CONVERT(char(5),MIN([打卡时间]),108) AS [打卡时间] 
    FROM #T 
    WHERE CONVERT(char(5),[打卡时间],108) BETWEEN '08:10' AND '08:30'
    GROUP BY [工号]
      

  6.   


    这么简单的SQL语句不会写,怎么混的.