【问题标题】:Noob need help in age calculation菜鸟需要帮助计算年龄
【发布时间】:2010-01-20 07:03:14
【问题描述】:

此查询方法有效:

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 

我需要从数据库中提取值并使用子查询对其进行处理,但它不起作用。我猜子查询在功能中是不允许的。有解决办法吗?

提前致谢!

【问题讨论】:

  • 标签是吸引合适的人回答您的问题的好方法。由于这是一个 SQL 查询,如果您可以使用数据库风格(Postgresql?Mysql?)编辑您的问题,将对我们有所帮助

标签: sql database date


【解决方案1】:
  1. 您的子选择包含在引号中,因此它被视为字符串。
  2. 实际上没有必要将月份和日期附加到您刚刚在子查询中选择的年份,因为您随后会在其上运行年份函数。

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多