Нам нужно получить HOUR из столбца DATETIME (ожидая возврата значений от 0 до 23).
Существует ли эквивалент функции SQL Server DATEPART в Oracle?
Нам нужно получить HOUR из столбца DATETIME (ожидая возврата значений от 0 до 23).
Существует ли эквивалент функции SQL Server DATEPART в Oracle?
Альтернативой является функция EXTRACT, которая является стандартом ANSI и также работает с другими СУБД, но также требует использования current_timestamp (также ANSI) вместо sysdate.
SELECT extract(hour from current_timestamp)
FROM dual
Я думаю, это то, что вы ищете
select to_char(current_timestamp,'HH24') from dual;
для дополнительных способов использования функции типа DATEPART в оракуле
DATEPART: – День недели
-- Это дало бы день недели для исходного дня начала
DECLARE
Start_day date:=to_date('30-03-2012','DD-MM-YYYY');
check_date DATE:=SYSDATE;
Day_of_week NUMBER;
i NUMBER;
BEGIN
i:=to_char(Start_day,'D');
day_of_week:=mod((to_char(check_date,'D') -(i-1)+7),7);
if day_of_week=0
THEN
day_of_week:=7;
end if;
dbms_output.put_line(day_of_week);
END;
если вы хотите получить название месяца даты
select to_char( 'month', sysdate())