Noob在年龄计算方面需要帮助

时间:2010-01-20 07:03:15

标签: sql database date

此查询方法有效:

SELECT xxx 
FROM xxx-table 
WHERE YEAR( CURRENT_DATE( ) ) - YEAR( '1988-10-27' ) 
                        - ( DATE_FORMAT( CURRENT_DATE( ) , '%m-%y' ) < '12-31' ) 
                                  Between 20 and 25 

但我需要的是这样的......

SELECT YEAR( CURRENT_DATE( ) )
                     - YEAR( '(Select xxx 
                                From xxx-table 
                                where year_id=9 limit 1)-10-27' ) 
                                 - ( DATE_FORMAT( CURRENT_DATE( ) , '%m-%y' )
                           < '12-31' ) 
        Between 20 and 25 

我需要从数据库中提取值并使用子查询处理它,但它不起作用。我猜在功能上不允许子查询。有没有解决这个问题?

提前致谢!

1 个答案:

答案 0 :(得分:2)

  1. 你的引号中有你的subselect,所以它被视为一个字符串。
  2. 实际上没有必要将月份和日期追加到您刚刚在子查询中选择的那一年,因为您正在运行一年的函数。
  3. 试试这个:

    SELECT YEAR( CURRENT_DATE( ) )
                         - (Select xxx
                                    From xxx-table
                                    where year_id=9 limit 1)
                                     - ( DATE_FORMAT( CURRENT_DATE( ) , '%m-%y' )
                               < '12-31' )
            Between 20 and 25