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

标签 date firebird 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)   

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

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

SELECT DATEPART(QUARTER, @date)

我如何使用 Firebird 做到这一点?

最佳答案

将 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>

或者只是

  SELECT
    (EXTRACT(MONTH FROM <date_field>) - 1) / 3 + 1
  FROM 
    <some_table>

关于date - 如何从 Firebird SQL 中的日期获取季度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33725897/

相关文章:

java - Java 中的日期比较

csv - 在 Firebird 中使用触发器输出 CSV 文件

mysql - 如何在 PostgreSQL 数据库中使用 DAY 函数?

sql-server - 如何在MsSQL中创建created_at和updated_at字段?

PHP strtotime() 将日期设置为默认值

date - 该模块导入错误

sql - Firebird 和 SQL Server 删除组中最高的行

delphi - dbExpress/未指定键

sql 脚本使用 datepart 每小时分组并用 0 填充空白

sql - 如何在 PostgreSQL 中将 LIKE 函数与 DATE_PART 函数结合起来?