В Великобритании используется неделя ISO: первая неделя года включает 4 января.
Итак:
set datefirst 1 --this sets Monday as first day of the week
set dateformat dmy -- nosrmal date format
select Date,Time,EndDate,EndTime,datepart(iso_week,date)as week
FROM Test
WHERE (StartDate >= '01.01.2019')
ORDER BY StartDate
Помните, что первые дни января могут быть 52-й или 53-й неделей предыдущего года, а также последний день декабря может принадлежать первой неделе нового года.
проверка, чтобы увидеть номер недели и перенести на год, к которому она принадлежит, заключается в следующем:
week_and_year = case when datepart(iso_week,date)>=52 and month(date)=1
then concat(year(date)-1,datepart(iso_week,date))
when datepart(iso_week,date)=1 and month(date)=12
then concat(year(date)+1,datepart(iso_week,date))
else concat(year(date),datepart(iso_week,date))
end
Много людей использует МОК в.NET, и существует несколько платформ, доступных для помощи с использованием МОК. Можно видеть его меньше в стороне WinForms вещей, потому что более трудно просто позволить контейнерному проводу все вместе, когда Вы разрабатываете формы в Visual Studio, но я могу сказать, что для серверной стороны приложения.NET, где я работаю, по крайней мере, МОК, используются очень успешно.
Почему использование это в.NET? По той же причине Вы еще используете его везде. 2 самых больших вещи, которые я люблю:
Некоторые другие сообщения, обсуждая различные платформы МОК/DI, доступные для.NET:
Я использую StructureMap для внедрения зависимости и только недавно начал использовать его с iBATIS.NET для введения наших картопостроителей объекта области во времени выполнения (а не через файл конфигурации XML, нет, спасибо!).
Я видел непосредственные преимущества. Создание интерфейсов для всех наших картопостроителей (такой как IPersonMapper
) и затем добавление Moq позволяет мне писать некоторые довольно большие модульные тесты без баз данных быстро и легко.
Ранее (.NET 1.0) я записал свою собственную сменную систему главным образом для приобретения знаний об отражении. С этого времени я реализовал своего рода МОК в своих проектах. Его единственное недавно я начал использовать МОК для того, чтобы сделать модульные тесты настолько менее болезненными для записи. Я не мог предположить делать его любой другой путь в этой точке.
МОК не действительно что банальность в .NET вплоть до сих пор. И это имеет все, чтобы сделать с Microsoft и там кампаниями продвижения, которые они сделали. вплоть до сих пор они больше подчеркивали возможности быстрой разработки приложений VS и в это время забытия продвинуть вещи как МОК и Di, но теперь у них есть своя собственная платформа под названием Единица, и с работой они сделали на ASP.NET MVC.
Таким образом, я предполагаю, что большинство людей начнет использовать подобные вещи. Поскольку знают, что у них есть альтернатива MS использованию.
И я использую StructureMap.
Это становится более распространенным. Мой текущий проект использует Spring, и на моем предыдущем проекте мы использовали замок Windsor.
Теперь я хотел бы использовать 'конвенцию по конфигурации' идея, предотвратить все те сложные определения XML.
Я использую его, чтобы позволить моим Модульным тестам заменять Ложными Классами (моделирующий фактические производственные классы) для восходящих подчиненных объектов так, чтобы мои модульные тесты действительно только выполнили и протестировали код в одном class.method, который они записаны для тестирования.
Существует много теорий, связанных с использованием МОК.NET. Я думаю, что существует изрядное количество разработчиков, которые не имеют опыта в области. Они не происходили из среды Java. Они произошли из классического ASP и фона VB6. Кроме того, Microsoft действительно не способствовала использованию МОК до недавнего времени.
Далее, использование МОК принимает несколько вещей. Во-первых, необходимо понять то, для чего это используется и что Вы выходите из него. Во-вторых, необходимо разработать код так, чтобы контейнер МОК мог на самом деле использоваться.
МОК больше, чем просто использует другой объект на панели инструментов. Это о знании, как использовать, знание, когда использовать его и назревание как разработчик.
Поскольку это касается.NET, у меня есть несколько контейнеров МОК. Я использовал Виндзор, StructureMap, Единицу и, последний раз, Ninject. Следует иметь в виду, тем не менее, что я не использовал всех их в реальных приложениях. Мне нравится играть вокруг и видеть то, что продолжается там. Я нашел, что рынок для контейнеров МОК.NET довольно хорош.
Попробуйте LinFu. МОК 2.0:
http://www.codeproject.com/KB/cs/LinFu_IOC.aspx
Это - один из самых гибких контейнеров МОК там, и как Ninject, нет никакого XML-файла для поддержания. В отличие от Ninject, однако, LinFu не вынуждает Вас написать любой обязательный код для обеспечения электричеством зависимостей вместе. Смотрите!:)