0

在 MySql 中,我可以使用 YEARWEEK() 在一个字符串中接收周和本周的相关年份。(例如SELECT YEARWEEK('1987-01-01');导致“198653”)。

Oracle10g 中有类似的东西吗?

我只知道 TO_CHAR 函数。但是如果我使用TO_CHAR(sysdate, 'YYYYIW');我会收到 198753 而不是 198653。那么,我如何才能正确计算呢?

4

2 回答 2

3

使用IYYYIW格式有TO_CHAR()什么不同吗?注意开头的“ I ”而不是第一个“Y”,它是基于 ISO 标准的 4 位数年份。

于 2011-09-15T10:13:25.107 回答
0

我无法重现 Oracle 返回 198753 的示例。

select TO_CHAR(DATE '1987-01-01', 'YYYYIW') from dual198701根据 ISO 对周数的定义,这对我来说是正确的。

Oracle 有另一种格式掩码WW(而不是IW),它使用一年中的第一天所在的周作为第 1 周 - 这将再次返回 1 月 1 日的第 1 周。

看看这里:http ://en.wikipedia.org/wiki/Week_number#Week_numbering

我发现 MySQL 的周数实际上有点奇怪,因为我知道没有一个周编号方案会返回 1987 年 1 月 1 日的第 53 周(但这并不意味着太多......)

于 2011-09-15T10:24:27.307 回答