Oracle数据库中获取某个日期是当年的第几周、当月的第几周、当年的第几天均可以使用to_char来获取。
to_char(sysdate,'WW'); -- 当年第几周,以01-01 至 01-07为第一周
to_char(sysdate,'W'); -- 当月第几周,以01 至 07为第一周
to_char(sysdate,'DDD'); -- 当年第几天,以01-01 为 001
GBase 8s的to_char尚未实际该功能,因此需要使用自定义函数来实现,具体如下:
当年的第几周
drop function if exists weekofyear(datetime year to second);
-- day of year, first week is 01-01 ~ 01-07
create function weekofyear(p_datetime datetime year to second) returns int with (not variant);
return trunc(1 + (p_datetime - TRUNC(p_datetime, 'YEAR')) / 7);
end function;
阅读全文»