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的结果

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。