如何从 Firebird SQL 中的日期获取季度

Zeb*_*dee 3 firebird date datepart

我可以轻松获得本月和上月的总销售额。

SELECT ‘This Mount’,  SUM(Price) FROM Sales 
WHERE EXTRACT(MONTH FROM OrderDate) = EXTRACT(MONTH FROM CURRENT_DATE)   
  AND EXTRACT(YEAR FROM OrderDate) = EXTRACT(YEAR FROM CURRENT_DATE)   
Union All
SELECT ‘Previous Month’,  SUM(Price) FROM Sales 
WHERE EXTRACT(MONTH FROM OrderDate) = EXTRACT(MONTH FROM CURRENT_DATE)   
  AND EXTRACT(YEAR FROM OrderDate) = EXTRACT(YEAR FROM CURRENT_DATE)   
Run Code Online (Sandbox Code Playgroud)

我想获得本季度和上一季度的总销售额。

使用 MS-SQL 从日期中获取季度非常容易,如下所示:

SELECT DATEPART(QUARTER, @date)
Run Code Online (Sandbox Code Playgroud)

我怎样才能用 Firebird 做到这一点?

And*_*jeŭ 5

将 DECODE 函数与 EXTRACT 结合使用:

SELECT
  DECODE(EXTRACT(MONTH FROM <date_field>),
    1, 'I',
    2, 'I',
    3, 'I',
    4, 'II',
    5, 'II',  
    6, 'II',  
    7, 'III',  
    8, 'III',  
    9, 'III',
    'IV')  
  FROM
    <some_table>
Run Code Online (Sandbox Code Playgroud)

要不就

  SELECT
    (EXTRACT(MONTH FROM <date_field>) - 1) / 3 + 1
  FROM 
    <some_table>
Run Code Online (Sandbox Code Playgroud)