Цитата:
Сообщение от
kair84
Функция WeekOfYear(31\12\2012) возвращает 2

наверное после дня апокалипсиса нумерация недель начинается заново.
2 не наблюдается (Ax 2009 SP1 EE RU6 5.0.1500.3761)
X++:
static void Job17(Args _args)
{
;
info(strfmt("25.12.2011 - %1",WeekOfYear(25\12\2011))); //52
info(strfmt("30.12.2011 - %1",WeekOfYear(30\12\2011))); //1
info(strfmt("31.12.2011 - %1",WeekOfYear(31\12\2011))); //1
info(strfmt("01.01.2012 - %1",WeekOfYear(01\01\2012))); //1
info(strfmt("29.12.2012 - %1",WeekOfYear(29\12\2012))); //53
info(strfmt("30.12.2012 - %1",WeekOfYear(30\12\2012))); //53
info(strfmt("31.12.2012 - %1",WeekOfYear(31\12\2012))); //1
info(strfmt("01.01.2013 - %1",WeekOfYear(01\01\2013))); //1
}
Код:
Info Сообщение (13:48:46) 25.12.2011 - 52
Info Сообщение (13:48:46) 30.12.2011 - 1
Info Сообщение (13:48:46) 31.12.2011 - 1
Info Сообщение (13:48:46) 01.01.2012 - 1
Info Сообщение (13:48:46) 29.12.2012 - 53
Info Сообщение (13:48:46) 30.12.2012 - 53
Info Сообщение (13:48:46) 31.12.2012 - 1
Info Сообщение (13:48:46) 01.01.2013 - 1
но, есть разночтения с SQL:
PHP код:
SET DATEFORMAT dmy;
SELECT DATEPART(ww, '25/12/2011') as '25/12/2011'
,DATEPART(ww, '30/12/2011') as '30/12/2011'
,DATEPART(ww, '31/12/2011') as '31/12/2011'
,DATEPART(ww, '01/01/2012') as '01/01/2012';
SELECT DATEPART(ww, '30/12/2012') as '30/12/2012'
,DATEPART(ww, '31/12/2012') as '31/12/2012'
,DATEPART(ww, '01/01/2013') as '01/01/2013';
select @@version
Код:
25/12/2011 30/12/2011 31/12/2011 01/01/2012
----------- ----------- ----------- -----------
52 53 53 1
(1 row(s) affected)
30/12/2012 31/12/2012 01/01/2013
----------- ----------- -----------
53 54 1
(1 row(s) affected)
--------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86)
Apr 2 2010 15:53:02
Copyright (c) Microsoft Corporation
Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) (Hypervisor)