mysql多表联合更新;mysql计算两个日期的间隔天数
现有两个个表(tb_leaveapplication和tb_cworkcount),样式如下:
图一 tb_leaveapplication
图二 tb_cworkcount
一、 计算两个日期之间间隔的天数
对于tb_leaveapplication,要计算出la_begintime到la_endtime之间的时间间隔,利用mysql的to_days函数,代码如下:
select la_e_Num,(SELECT to_days(la_endTime) - to_days(la_beginTime))as days from tb_leaveapplication
结果如下:
二、多表联合更新
以‘RSXZ140003‘,‘RSXZ140006‘的数据为例:在tb_leaveapplication中,他们的la_approveFou都为null;在tb_cworkcount中,他们在c_cw_Num=‘cw4‘时c_Number都为0。现在要更新他们的la_approveFou和c_Number,其中让la_approveFou等于0,而c_Number则等于c_Number原来的值加上‘RSXZ140003‘和‘RSXZ140006‘在tb_leaveapplication中对应的时间间隔天数。mysql联合更新代码如下:
update tb_leaveapplication,tb_cworkcount
set tb_leaveapplication.la_approveFou=0,
tb_cworkcount.c_Number=tb_cworkcount.c_Number+((select to_days(la_endTime) - to_days(la_beginTime)+1)) where tb_leaveapplication.la_e_Num=tb_cworkcount.c_e_Num and tb_cworkcount.c_e_Num in(‘RSXZ140003‘,‘RSXZ140006‘) and tb_cworkcount.c_cw_Num=‘cw4‘
结果如下:
图三 tb_cworkcount的结果
图四 tb_leaveapplication的结果
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。