1、年月日加减法(时间字段为  hiredate,表名为 emp)

DB2

select

         hiredate  -5   day  as  hd_sub_5day,

         hiredate  +5   day  as hd_add_5day,

         hiredate  -5   month  as  hd_sub_5month,

         hiredate  +5   month  as  hd_add_5month,

         hiredate  -5   year  as  hd_sub_5year,

         hiredate  +5   year  as  hd_add_5year
from  emp

Oracle

select

         hiredate  -5  as  hd_sub_5day,

         hiredate  5  as hd_add_5day,

         add_months(hiredate,-5) as  hd_sub_5month,

         add_months(hiredate,5)  as  hd_add_5month,

         add_months(hiredate,-5*12)  as  hd_sub_5year,

         add_months(hiredate,5*12) as  hd_add_5year
from  emp

Mysql

select

         hiredate  -  interval  5 day  as  hd_sub_5day,

         hiredate  +  interval  5 day  as hd_add_5day,

         hiredate  -  interval  5 month  as  hd_sub_5month,

         hiredate  +  interval  5 month  as  hd_add_5month,

         hiredate  -  interval  5 year  as  hd_sub_5year,

         hiredate  +  interval  5 year  as  hd_add_5year
from  emp

或者使用date_add函数

select

         date_add(hiredate,interval - 5 day)  as  hd_sub_5day,

         date_add(hiredate,interval  5 day)  as hd_add_5day,

         date_add(hiredate,interval - 5 month)  as  hd_sub_5month,

         date_add(hiredate,interval  5 month)  as  hd_add_5month,

         date_add(hiredate,-interval - 5 year)  as  hd_sub_5year,

         date_add(hiredate,interval  5 year)  as  hd_add_5year
from  emp

SQL Server

select

         date_add(day ,interval - 5 hiredate)  as  hd_sub_5day,

         date_add(day,interval  5 hiredate)  as hd_add_5day,

         date_add(month,interval - 5 hiredate)  as  hd_sub_5month,

         date_add(month,interval  5 hiredate)  as  hd_add_5month,

         date_add(year,-interval - 5 hiredate)  as  hd_sub_5year,

         date_add(year,interval  5 hiredate)  as  hd_add_5year
from  emp

2、计算两个日期之间的天数(时间字段为  hiredate,名称字段为 ename,表名为 emp)

DB2

select
    days(x.ward-hd) - days(y.allen_hd)
from
    (select hiredate as ward_hd
     from  emp
     where  ename = 'WARD'
    ) x,
    (select hiredate as allen_hd
     from  emp
     where  ename = 'ALLEN'
    ) y

Oracle

select
    x.ward-hd - y.allen_hd
from
    (select hiredate as ward_hd
     from  emp
     where  ename = 'WARD'
    ) x,
    (select hiredate as allen_hd
     from  emp
     where  ename = 'ALLEN'
    ) y

Mysql 和 SQL Server

select
    datediff(day,x.ward-hd,y.allen_hd)
from
    (select hiredate as ward_hd
     from  emp
     where  ename = 'WARD'
    ) x,
    (select hiredate as allen_hd
     from  emp
     where  ename = 'ALLEN'
    ) y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐