选择列值相差两年以上的行

时间:2013-01-20 23:21:38

标签: mysql sql

所以我的桌子有这样的记录

ID    PRODUCT      MAKE_DATE       ORDER_DATE
1       aaaa       2010-11-04      2051-12-11 16:13:43
2       bbb        2011-10-05      2010-11-11 00:00:00
3       cccc       2010-05-20      0000-00-00 00:00:00

我的问题:如何在make_dateorder_date不同的情况下显示这些结果2年?

IM坚持这一点:

Select ID, Product, make_date, order_datetime
FROM `tbl_order`
WHERE make_date ??? order_datetime

结果应该是:

1       aaaa       2010-11-04      2051-12-11 16:13:43
3       cccc       2010-05-20      0000-00-00 00:00:00

2 个答案:

答案 0 :(得分:2)

Select ID, Product, make_date, order_datetime
FROM tbl_order
WHERE make_date < order_datetime - INTERVAL 2 YEAR 
   OR make_date > order_datetime + INTERVAL 2 YEAR ;

答案 1 :(得分:1)

对于MySQL使用TIMESTAMPADD函数:

SELECT ID, Product, make_date, order_datetime
FROM `tbl_order`
WHERE make_date > TIMESTAMPADD(YEAR, 2, order_datetime)
OR make_date < TIMESTAMPADD(YEAR, -2, order_datetime)