在MySql中,我可以使用YEARWEEK()在一个字符串中接收这周的星期和相关年份。(例如,SELECT YEARWEEK('1987-01-01');通向"198653")。
在Oracle10g中有类似的东西吗?
我只知道TO_CHAR函数。但是如果我使用TO_CHAR(sysdate, 'YYYYIW');,我会得到198753而不是198653。那么,我如何才能正确地计算这个值呢?
发布于 2011-09-15 18:13:25
在TO_CHAR()中使用IYYYIW格式会有什么不同吗?注意开头的"I“而不是第一个"Y",它是基于国际标准化组织标准的4位数年份。
发布于 2011-09-15 18:24:27
我不能重现Oracle返回198753的例子。
select TO_CHAR(DATE '1987-01-01', 'YYYYIW') from dual为我返回了198701,根据ISO对周数的定义,它是正确的。
Oracle有另一个格式掩码WW (而不是IW),它将一年中第一天所在的星期用作week #1 -它将再次返回1月1日的week #1。
看看这里:http://en.wikipedia.org/wiki/Week_number#Week_numbering
我发现MySQL的周数字实际上有点奇怪,因为我知道没有一种周编号方案会在1987年1月1日返回第53周(但这并不意味着太多……)
https://stackoverflow.com/questions/7429061
复制相似问题