Oracle эквивалент SQL Server DATEPART - PullRequest
17 голосов
/ 12 мая 2011

Нам нужно получить ЧАС из столбца DATETIME (ожидаются значения от 0 до 23).

Есть ли в Oracle эквивалент функции SQL Server DATEPART?

Ответы [ 5 ]

24 голосов
/ 12 мая 2011

Альтернативой является функция EXTRACT, которая является стандартом ANSI и также работает на других СУБД, но она также требует использования current_timestamp (также ANSI) вместо sysdate

SELECT extract(hour from current_timestamp) 
FROM dual
17 голосов
/ 12 мая 2011
 SELECT to_number(to_char(sysdate, 'HH24')) FROM DUAL
2 голосов
/ 15 сентября 2017

Я думаю, это то, что вы ищете

select to_char(current_timestamp,'HH24') from dual;
1 голос
/ 29 марта 2012

для дополнительных способов использования функции DATEPART в Oracle

DATEPART: -Weekday

- Это даст день недели для базового дня начала

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;    
0 голосов
/ 10 июня 2019

, если вы хотите получить название месяца для даты

select to_char( 'month', sysdate())
...