㈠ sql语句查询特定时间段的数据怎么写
SQL服务器:
Select*fromtablewhere'2008-7-1'和'2008-12-31'
访问:
从表中选择发生日期>#2008-7-1#和发生日期<#2008-12-31#
就是这样:注意,SQLserver中的日期和访问有一点不同。
(1)查询指定日期迟到员工列表sql扩展阅读:
SQL查询日期语句
Select*fromShopOrderwheredatediff(week,ordTime,getdate()-1)=0//查询第一年的日期
Select*fromShopOrder,其中datediff(day,ordTime,getdate()-1)=0//查询当天的所有数据
SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天
SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 //上个月
搜索当天记录的其他方法:
SELECT*
FROMj_GradeShop
其中(GAddTimeBETWEENCONVERT(datetime,LEFT(GETDATE(),10)+'00:00:00.000'))
并转换(datetime,LEFT(GETDATE(),10)+'00:00:00.00.000')+1)
由GAddTime指定的订单
㈡ SQL如何判断迟到
给你一个思路吧
1,先把两个表串起来
2,按照 日期 分组,取一个最小的打卡时间
3,case 语句,判断取出来的时间 和 9:30的大小关系。
㈢ SQL语言查询日期最晚的某些条记录
正确答案:
select 表.*
from 表,(select 员工id,max(更改时间) 更改时间 from 表 group by 员工id) x
where 表.更改时间=x.更改时间 and 表.员工id=x.员工id
㈣ ”查询迟到次数大于5的员工有多少人”的SQL语句怎么写
如果是统计迟到次数大于5的员工总数:
select count(*) as 人数 from 表名 where 迟到>5
如果是把所有迟到次数大于5的员工列出来:
select * from 表名 where 迟到>5
㈤ sql语句,查询某个部门的员工考勤异常超过5次的员工,
select
*
from
(select
部门,
员工姓名
,
count(1)
as
'考勤异常数'
from
table
where
部门
=
'X'
and
考勤
=
'异常'
group
by
部门,
员工姓名)
t1
where
t1.考勤异常数
>
5;
---------------------------------------------------------------------------
sql解释:内层语句是统计某个部门(X)考勤有'异常'的员工及异常次数;
外层语句是将异常次数超过5次的员工查询出来。
㈥ SQL语句的编写,查询公司所有普通员工某一天第一次的刷卡时间和最后一次刷卡时间的汇总。
感觉只能用游标来做,普通的SQL几乎不能实现。
㈦ 使用一个sql语句,查询在7月份迟到的,超过9点40的为迟到,只求sql语句的条件
SELECT Department,lateCount
FROM
(
SELECT Department, COUNT(*) AS lateCount
FROM staff_info JOIN time_record ON staff_info.Staff_code = time_record.Staff_code
CONVERT(varchar(5),arrive_time,114)>'14:40'
)
WHERE lateCount >=3
㈧ sqlserver 查询记录根据人员考勤记录去重,当时只去重当天的,不同日期的可以重复,sql怎么写 求助
用分析函数row_number() over (partition by ... order by ...)给记录进行分组编号,按人员id和考勤日期进行分组(如果考勤日期带时分秒,需先截断到日),按时间升序排序;这样,就得到人员ID在同一考勤日期下的编号值(编号值是从1开始的),然后,只取编号值为1的记录。
SQL类似:
selects.id,s.name,s.date,s.card_time
from(
selectd.id,d.name,d.date,d.card_time,
row_number()over(partitionbyd.id,d.dateorderbyd.card_time)asrow_idx
fromdata_tabled
)s
wheres.row_idx=1
㈨ sql查询一段时期里每一天所有员工的打卡记录
1、某一位员工在指定时间段里每一天的最早和最迟打卡记录
selectmin(card_no)card_no,min(fname)fname,min(rec_dat)start_time,max(rec_dat)end_time
fromEV_LOG
wherecard_no='员工卡号'andevnt_descrp='Accessgranted'
andconvert(varchar(10),rec_dat,120)between'2013-07-01'and'2013-07-16'
groupbyconvert(varchar(10),rec_dat,120)
3、 所有员工在指定时间段里每一天的最早和最迟打卡记录
selectcard_no,min(fname)fname,min(rec_dat)start_time,max(rec_dat)end_time
fromEV_LOG
whereevnt_descrp='Accessgranted'and
convert(varchar(10),rec_dat,120)between'2013-07-01'and'2013-07-16'
groupbycard_no,convert(varchar(10),rec_dat,120)
2和4就不写了,用datediff(hh,start_time,end_time)就可以了
㈩ 查询指定年份之间入职的员工信息。(1980-1985) sql语句
select * from table t
where trunc(t.字段名)>=to_date('1980-01-01','yyyy-mm-dd')
and trunc(t.字段名)<to_date('1986-01-01','yyyy-mm-dd')