我假定你的入職日期字段格式為date,并且字段名為 t_date,那么下面這條語句可能可以滿足你的要求.
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、天津網(wǎng)站維護(hù)、網(wǎng)站推廣。
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
====================
說明一下思路:
子查詢計(jì)算出入職的年數(shù),并將結(jié)果添加字段別名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個,說的是表內(nèi)的前五個(隨便5個),還是按照什么排名的前五個?
另外工齡是需要計(jì)算還是有直接的字段。還有,你的數(shù)據(jù)庫是什么?mysql,sqlserver和oracle的寫法也是有些區(qū)別的。這些都不說,怎么寫語句???
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函數(shù)使用說明: DATE_ADD(date,
INTERVAL
expr
type);
第一個參數(shù)date,可以是date類型或者datetime類型;
第二個參數(shù)INTERVAL
expr
type;INTERVAL
是指明相加的間隔,
expr是表達(dá)式,間隔的值,可以為列名,如
`WorkYear`;type是指定那部分相加,如
YEAR,只相加YEAR部分,其它不變,可以為其它類型如:DAY_HOUR,MINUTE_SECOND
。