反对楼主的这个构思
不可以单纯用一个sql语句解决这个问题
因为还有法定节假日的问题
所以建议楼主专门建立一个日期的表,
字段有公历日期,农历日期,农历是否闰月,是否工作日注:因为每个单位放假不一定的,所以当天是否工作日可以在表中事先调整好。然后再对某一时间段内具体的工作日天数进行汇总。注:我也在帮公司的人事部门做考勤数据汇总的,记得劳动法上说一个月的法定工作日设置为20.92天吧。
不可以单纯用一个sql语句解决这个问题
因为还有法定节假日的问题
所以建议楼主专门建立一个日期的表,
字段有公历日期,农历日期,农历是否闰月,是否工作日注:因为每个单位放假不一定的,所以当天是否工作日可以在表中事先调整好。然后再对某一时间段内具体的工作日天数进行汇总。注:我也在帮公司的人事部门做考勤数据汇总的,记得劳动法上说一个月的法定工作日设置为20.92天吧。
解决方案 »
- 数据库2005 没有Microsoft SQL Server Management Studio Express
- 请高人解答一下关于SQL server的问题!
- sql2000删除表数据的问题,谢谢!
- 一道多表之间的的行列转换^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 快速写数据库
- SQL语句求助?问题解决马上给分!
- 在函数中要取得当前时间怎么做?sqlserver提示不能用getdate()
- 散分,又一只菜鸟加入了sql的行列,请问目前比较普及的sqlserver版本和一些学习意见
- like检索速度提高的问题。
- 有表如下:
- 一条比较难的SQL语句..高手进来帮帮我好吗?
- 很弱的问题
returns int
as
begin
declare @i int
declare @J int
declare @m int
set @m = 0
set @j = 0
select @i = datediff(d,convert(varchar(8),@enddate,120)+'01',@enddate)
if @I <=0
return 0
else
begin
while @i > 0
begin
set @m = datepart(dw,convert(varchar(8),@enddate,120)+right(100+@i,2))
if (@m > 1 and @m < 7) set @j = @J + 1
set @i = @i - 1
end
end return @j
end goselect convert(varchar(2),dbo.countday('2006-02-11')) +'/22'/*-----
8/22*/
drop function countday