
drop function dbof_get_workdays
go
CREATE FUNCTION dbof_get_workdays(@bdate DATETIME, @edate DATETIME)
RETURNS INTEGER
AS BEGIN
DECLARE @workdays INTEGER
IF @bdate > @edate
RETURN -1
SELECT @workdays =
--如果终止日期与起始日期在同一个星期内,只需要计算有几天即可
CASE WHEN DATEPART(wk, @edate-1)-DATEPART(wk,@bdate) = 0 THEN
CASE WHEN DATEPART(dw, @bdate) > 5 THEN 0
WHEN DATEPART(dw, @edate-1) > 5 THEN 6 - DATEPART(dw, @bdate)
ELSE DATEPART(dw, @edate-1) - DATEPART(dw, @bdate) + 1 END
--如果终止日期与起始日期在不同的星期内
--首先计算出除前后两个星期外完整的星期数 5
ELSE (DATEDIFF(dd,@bdate,@edate)
- (8-DATEPART(dw, @bdate))
- DATEPART(dw, @edate-1)) / 7 5
--再加上第一个星期里的工作日数
+ CASE WHEN DATEPART(dw, @bdate) < 6 THEN 6 - DATEPART(dw, @bdate)
ELSE 0 END
--加上末一个星期里的工作日数
+ CASE WHEN DATEPART(dw, @edate-1)>5 THEN 5 ELSE DATEPART(dw, @edate-1) END
END
RETURN @workdays
END
go
select dbof_get_workdays(dateadd(day,-21,getdate()),getdate())
场内保证金华币基金周五买入。下午卖出获取6天收益。
上星期五三点前买入的基金到下星期五三点前卖出算六天。不够七天。因为根据基金的买卖规则来看。在周五购买的基金必须要到礼拜一才会确认份额。因为礼拜六礼拜天是停市的。如果是按照这样子的规则来进行计算的话。那确实是不能够算7天的。在基金交易当中。如果持有的时间在7天之内。那公司将会收取相应的赎回费率。费率的高低要视实际情况而定。
select
from (select to_date('2013-01-01', 'yyyy-mm-dd') + rownum - 1 days
from dba_objects) a
where extract(year from days) = 2013
and to_char(days, 'WW') = 22
and to_char(days, 'day') in ('星期一', '星期二', '星期三', '星期四', '星期五')
年份:2013,第几周:22
中文版sql Server中:
Select '本周一',DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
Select '下周一',DATEADD(wk, DATEDIFF(wk,0,getdate())+1, 0)
Select '本周最末',dateadd(ms,-3,DATEADD(wk, DATEDIFF(wk,0,getdate())+1, 0))
Select '本周五',DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
Select '本周五末',dateadd(day,-2,dateadd(ms,-3,DATEADD(wk, DATEDIFF(wk,0,getdate())+1, 0)))
$w=5;//求周五
echo getLastWeekNo(2017,2,$w);
/
求某年 某月 最后一周 周几的日期
@param unknown $year 年
@param unknown $month 月
@param unknown $weekNo 求周几(周日传0)
@return string 最后周$weekNo的日期
/
function getLastWeekNo($year,$month,$weekNo){
//设置时区
date_default_timezone_set('PRC');
//求当月第一天
$beginDate=date('Y-m-01', strtotime($year'-'$month'-01'));
//当月最后一天时间戳
$endDate=strtotime("$beginDate +1 month -1 day");
//求最后一天是周几
$numberWk=intval(date("w",$endDate));
//如果所求周几跟当前日期相等则直接返回日期
if($numberWk==$weekNo){
$strTime=$endDate;
}else{
//计数器
$j=0;
//计算所求的周几数跟最后一天相差的天数
while($numberWk!=$weekNo) {
if($numberWk==0){
$numberWk=6;
}else{
$numberWk=$numberWk-1;
}
$j++;
}
//求相差天数后的日期
$strTime=strtotime(date('Y-m-d',$endDate)" -$j day");
}
return date('Y-m-d',$strTime);
}
您好,根据您的问题,周六和周日用英镑换人民币的汇率,一般是以上周五的汇率为准。由于汇率是每天都在变动的,所以周六和周日的汇率可能会有一定的差异,但是一般情况下,汇率的差异不会太大。因此,建议您可以以上周五的汇率为准,进行英镑兑换人民币的 *** 作。
以上就是关于sqlserver 写一个函数,能获取两个日期之间的周一到周五的总天数全部的内容,包括:sqlserver 写一个函数,能获取两个日期之间的周一到周五的总天数、场内保证金华币基金周五买入丶,下午卖出获取几天收益、oracle 获取指定周的星期一到星期五日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)