У меня есть год в качестве параметра в proc, который может быть 2017,2018 и т. Д.Oracle Дата - Получить 1 января данного года
Я хочу получить 1 января того же года в формате даты на сервере oracle.
Есть ли способ сделать это?
У меня есть год в качестве параметра в proc, который может быть 2017,2018 и т. Д.Oracle Дата - Получить 1 января данного года
Я хочу получить 1 января того же года в формате даты на сервере oracle.
Есть ли способ сделать это?
Вам может понадобиться что-то вроде:
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
но если вы обеспокоены тем, что на каком-то этапе это значение по умолчанию может измениться, вы также можете обрезать данные до года, чтобы освободиться полностью
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
Какой тип параметр (число, varchar, ...)? И что вам нужно сделать: нужно ли распечатать значение? использовать его в параметре OUT? для вставки в некоторую таблицу,? Также, пожалуйста, разместите свой код. – Aleksej