我需要将当前年份作为变量添加到SQL语句中,如何使用SQL检索当前年份?

  BETWEEN 
    TO_DATE('01/01/**currentYear** 00:00:00', 'DD/MM/YYYY HH24:MI:SS')
    AND
    TO_DATE('31/12/**currentYear** 23:59:59', 'DD/MM/YYYY HH24:MI:SS')

推荐答案

使用to_char:

select to_char(sysdate, 'YYYY') from dual;

在您的示例中,您可以使用以下内容:

BETWEEN trunc(sysdate, 'YEAR') 
    AND add_months(trunc(sysdate, 'YEAR'), 12)-1/24/60/60;

比较值正是您所要求的:

select trunc(sysdate, 'YEAR') begin_year
     , add_months(trunc(sysdate, 'YEAR'), 12)-1/24/60/60 last_second_year
from dual;

BEGIN_YEAR  LAST_SECOND_YEAR
----------- ----------------
01/01/2009  31/12/2009

Sql相关问答推荐

Postgres从组中 Select 具有相反排序顺序的行

带有双引号的json在Presto中是否有区别对待?

GROUP BY与多个嵌套查询T—SQL

具有2个共享列的两个表的Amazon RSQL合并

Android房间fts4匹配语法AND OR

如何在snowflake中进行SQL的反向填充

每组显示一行(表1中的分组值),表2中的不同列表用逗号分隔

如何用客户名称计算sum(dr)和sum(cr)

TSQL如何为群分配号码

Proc SQL Select Distinct SAS

在特定条件下使用 LAG,确定要采用什么 LAG 值?

如何根据创建日期查找两个表中最接近的记录?

SQL SUM Filter逻辑解释

Oracle SQL:通过将日期与另一个表行进行比较来 Select 值

根据不同日期标准分配组的逻辑

计算 BigQuery 中列的中值差 - 分析函数不能作为聚合函数的参数

PostgreSQL中如何提取以特定字符开头的字符串中的所有单词?

带有数组输入参数的Snowflake UDF优化

如何筛选 GROUP BY 结果? HAVING 没有产生预期的结果

如何根据 ID 和指标从 2 个表中找到不同的值?