我们需要从DATETIME列中获取HOUR(期望返回0到23之间的值)。
是否存在Oracle等效的SQL Server DATEPART功能?
答案 0 :(得分:24)
另一种选择是EXTRACT函数,它是ANSI标准,也适用于其他DBMS,但它还需要使用current_timestamp(也是ANSI)而不是sysdate
SELECT extract(hour from current_timestamp)
FROM dual
答案 1 :(得分:17)
SELECT to_number(to_char(sysdate, 'HH24')) FROM DUAL
答案 2 :(得分:1)
了解在oracle中使用DATEPART类函数的其他方法
<强> 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;
答案 3 :(得分:1)
我认为这就是你要找的东西
select to_char(current_timestamp,'HH24') from dual;
答案 4 :(得分:-1)
如果要获取日期的月份名称
select to_char( 'month', sysdate())