UPDATE
+表名+
SET
+参加工作+
=
(SELECT
DATE_ADD(Birthday,
INTERVAL
+WorkYear+
YEAR));
会把所有的
+参加工作时间+
列修改为
Birthday
+
WorkYear
DATE_ADD函数使用说明: DATE_ADD(date,
expr
type);
第一个参数date,可以是date类型或者datetime类型;
第二个参数INTERVAL
type;INTERVAL
是指明相加的间隔,
expr是表达式,间隔的值,可以为列名,如
+WorkYear+;type是指定那部分相加,如
YEAR,只相加YEAR部分,其它不变,可以为其它类型如:DAY_HOUR,MINUTE_SECOND
.
select * from 表 where 这是必须的
date就是你保存时间的字段
等号后面的当然条件啦.
是10年还是10年以上?
还有,你这样曝光别人的信息真的好吗?
这个是10年和10年以上基本工资加1000的:
UPDATE?+salary+?SET?JIB_IN?=?JIB_IN?+?1000?WHERE?E_ID?IN?(SELECT?E_ID?FROM?+employees+?WHERE?Gz_time?=?DATE_SUB(CURDATE(),?INTERVAL?10?YEAR))
我假定你的入职日期字段格式为date,并且字段名为 t_date,那么下面这条语句可能可以满足你的要求.
====================
说明一下思路:
子查询计算出入职的年数,并将结果添加字段别名t_year,这个语句只select了t_date字段,其他字段请按需要添加.
然后使用另一条查询来得到大于10年的职工.
select * from (子查询语句) as temp_data where t_year10
年限那个你应该会吧
本科那个呢 我有一个想法 你可以试一下但不一定是最好的解决方式
select?*?from?(
select?case?when?学历='专科'?then?0?when?学历='本科'?then?1?
)?tem?where?xl?=?1
这样就是一个完整的结果的集 再通过条件筛选即可
补充
条件中用in ('本科','研究生') 要省事一些.
自然会正确录入和显示中文.