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