我假定你的入职日期字段格式为date,并且字段名为 t_date,那么下面这条语句可能可以满足你的要求.
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、雅安服务器托管、营销软件、网站建设、天津网站维护、网站推广。
select * from( SELECT year(now())-year(t_date) as t_year FROM `test_t` where year(t_date) 1990 ) as tmp_data where t_year 10
====================
说明一下思路:
子查询计算出入职的年数,并将结果添加字段别名t_year,这个语句只select了t_date字段,其他字段请按需要添加.
SELECT year(now())-year(t_date) as t_year FROM `test_t` where year(t_date) 1990
然后使用另一条查询来得到大于10年的职工.
select * from (子查询语句) as temp_data where t_year10
什么叫做前5个,说的是表内的前五个(随便5个),还是按照什么排名的前五个?
另外工龄是需要计算还是有直接的字段。还有,你的数据库是什么?mysql,sqlserver和oracle的写法也是有些区别的。这些都不说,怎么写语句???
select years || '年' ||
months || '月' ||
abs(
trunc(
newer_date-
add_months(older_date,years*12+months )
)
) || '天'
from (
select trunc(months_between(newer_date, older_date )/12) YEARS,
mod(trunc(months_between(newer_date, older_date )),12 ) MONTHS,
newer_date,
older_date
from(
select to_date('2018-07-11','yyyy-mm-dd') older_date,
sysdate newer_date
from dual
)
);
UPDATE
`表名`
SET
`参加工作`
=
(SELECT
DATE_ADD(Birthday,
INTERVAL
`WorkYear`
YEAR));
会把所有的
`参加工作时间`
列修改为
Birthday
+
WorkYear
DATE_ADD函数使用说明: DATE_ADD(date,
INTERVAL
expr
type);
第一个参数date,可以是date类型或者datetime类型;
第二个参数INTERVAL
expr
type;INTERVAL
是指明相加的间隔,
expr是表达式,间隔的值,可以为列名,如
`WorkYear`;type是指定那部分相加,如
YEAR,只相加YEAR部分,其它不变,可以为其它类型如:DAY_HOUR,MINUTE_SECOND
。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款