在 MySql 中,我可以使用 YEARWEEK() 在一个字符串中接收周和本周的相关年份。(例如SELECT YEARWEEK('1987-01-01');
导致“198653”)。
Oracle10g 中有类似的东西吗?
我只知道 TO_CHAR 函数。但是如果我使用TO_CHAR(sysdate, 'YYYYIW');
我会收到 198753 而不是 198653。那么,我如何才能正确计算呢?
在 MySql 中,我可以使用 YEARWEEK() 在一个字符串中接收周和本周的相关年份。(例如SELECT YEARWEEK('1987-01-01');
导致“198653”)。
Oracle10g 中有类似的东西吗?
我只知道 TO_CHAR 函数。但是如果我使用TO_CHAR(sysdate, 'YYYYIW');
我会收到 198753 而不是 198653。那么,我如何才能正确计算呢?
使用IYYYIW
格式有TO_CHAR()
什么不同吗?注意开头的“ I ”而不是第一个“Y”,它是基于 ISO 标准的 4 位数年份。
我无法重现 Oracle 返回 198753 的示例。
select TO_CHAR(DATE '1987-01-01', 'YYYYIW') from dual
198701
根据 ISO 对周数的定义,这对我来说是正确的。
Oracle 有另一种格式掩码WW
(而不是IW
),它使用一年中的第一天所在的周作为第 1 周 - 这将再次返回 1 月 1 日的第 1 周。
看看这里:http ://en.wikipedia.org/wiki/Week_number#Week_numbering
我发现 MySQL 的周数实际上有点奇怪,因为我知道没有一个周编号方案会返回 1987 年 1 月 1 日的第 53 周(但这并不意味着太多......)