代码之家  ›  专栏  ›  技术社区  ›  Pentium10

如何与日期间隔一起使用案例?

  •  1
  • Pentium10  · 技术社区  · 14 年前

    我想问一下:

    SELECT DATE(DATE_SUB(DATE('2010-09-10'), (CASE DATETYPE WHEN 'H' THEN INTERVAL 1 WEEK ELSE INTERVAL 1 YEAR END CASE))) AS wdt 
    

    MySQL说它是无效的

    我也试过了

     SELECT _DATE AS wdt 
     UNION ALL 
     CASE DATETYPE
            WHEN 'H' THEN SELECT DATE(DATE_SUB(_DATE, INTERVAL 1 YEAR)) AS wdt ;
            ELSE SELECT DATE(DATE_SUB(DATE('2010-09-10'), INTERVAL 1 WEEK )) AS wdt;
      END CASE;
      UNION ALL 
      SELECT DATE(DATE_SUB(_DATE, INTERVAL 2 WEEK)) AS wdt 
    

    它也不起作用,查询语法错误。

    如何为假日选择间隔1年。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Pekka    14 年前

    使用两个日期子操作将起作用:

    SELECT IF (DATETYPE  = 'H', 
               DATE_SUB(DATE('2010-09-10'), INTERVAL 1 WEEK),
               DATE_SUB(DATE('2010-09-10'), INTERVAL 1 YEAR)) 
           as wdt;