Oracle日期 - 获得给定年份的1月1日
答
您可能需要类似:
create or replace procedure checkDate (pYear IN number) is
vNum number;
begin
select count(1)
into vNum
from (select sysdate as dateColumn from dual) someTable
where dateColumn > to_date('01-01-' || pYear, 'dd-mm-yyyy');
--
dbms_output.put_line(vNum);
end;
答
假设你的参数是P_year ...
TO_DATE('01/01/'||P_year,'DD/MM/YYYY')
答
一年只需转换为日期会做的伎俩
SQL> select to_date('2017','YYYY') from dual;
TO_DATE('2017','YYY
-------------------
01/01/2017 00:00:00
但是如果你担心在某个阶段这个默认值可能会改变,那么你也可以将数据截断为年份为absol非常确定
SQL> select trunc(to_date('2017','YYYY'),'YYYY') from dual;
TRUNC(TO_DATE('2017
-------------------
01/01/2017 00:00:00
答
如上所述TRUNC将是最适合这种情况。
SET define ON;
SET serveroutput ON;
DECLARE
lv_var VARCHAR2(100):='&Enter_year';
lv_date DATE;
begin
SELECT TRUNC(to_date(lv_var,'YYYY')) INTO lv_date FROM dual;
dbms_output.put_line(lv_date||' --> Req date');
END;
你在哪里存储年份(变量,表格,参数...)?你需要做什么(一个简单的查询,一个过程,...)?你到目前为止尝试过什么? – Aleksej
我把它作为proc中的一个参数 – Yogesh
参数(number,varchar,...)是什么类型?你需要做什么:你需要打印价值吗?在OUT参数中使用它?插入某个表中,?另外,请发布您的代码。 – Aleksej