在 Oracle 中使用模式参数计算 MySQL 的 WEEK 函数

Calculate MySQL's WEEK Function with mode argument In Oracle

我想知道在 Oracle 中有没有一种方法可以计算 Mysql 的周函数。我知道我们可以通过使用 to_char([date],IW') 来获取周数,它将星期一视为一周的第一个日期。

我知道 MySQL 有 7 种带周函数的模式,我可以在 oracle 中这样做吗?

如果不可能,那么有没有办法在 Oracle 中获得 MySQL 的 week([date],0) 函数替代方案?

您可以创建自定义函数:

CREATE FUNCTION week_zero( i_date IN DATE ) RETURN NUMBER
IS
BEGIN
  RETURN FLOOR( ( i_date - NEXT_DAY( TRUNC( i_date, 'YY' ) - INTERVAL '1' DAY, 'SUNDAY' ) ) / 7 ) + 1;
END;
/

Oracle 数据库<>fiddle here

等价于MySQLdb<>fiddlehere