Вы можете абсолютно смешивать страницы ASP с страницами ASP.NET. Я сделал это для внутренних сайтов, где у нас не было времени на редизайн, но нужно было добавить некоторые функции. Обратите внимание, что вы не можете делиться состоянием сеанса между двумя типами страниц (я работал над этим с помощью файлов cookie), но эти две страницы могут жить вместе на одном веб-сайте без проблем.
Часто страницы ASP имеют подключения к базе данных, хранящиеся в файле global.asa или, возможно, в включенном файле или даже прямо внутри самих страниц asp. Было бы полезно, когда вы переносите функциональность, чтобы иметь все эти соединения в одном логическом месте.
Нет прямого преобразования в ASP.NET из ASP, и если у вас еще нет опыта с ASP.NET, было бы полезно изучить некоторые примеры / учебные пособия, чтобы понять, как Веб-сайт ASP.NET работает. Существует множество вариантов подключения к базе данных. Посмотрите на www.asp.net, чтобы узнать о них.
Лучший способ сделать это - создать таблицу календаря и создать в ней специальный столбец, который сопоставляет каждую отдельную дату с атрибутом «дата замораживания».
Итак, я оставляю вас для исследования календарных таблиц.
А пока, без таблицы календаря, есть кое-что, с чего можно начать.
Во-первых, это выражение дает вам первый месяц в текущем квартале. Итак, если сегодня где-то в течение января-марта, это выражение дает вам 1. Если сегодня где-то в течение октября-декабря, это дает вам 10
SELECT (((MONTH(GETDATE()))-1)/3)*3+1 As FirstMonthInCurrentQuarter
Теперь мы конвертируем это число в фактическую дату первого месяца.
Сначала сгенерируем числовое представление:
SELECT
YEAR(GETDATE()) * 10000 +
((((MONTH(GETDATE()))-1)/3)*3+1) * 100 +
1
Мы просто конвертируем это в фактическую дату:
SELECT
CONVERT(
DATE,
CAST(
YEAR(GETDATE()) * 10000 +
((((MONTH(GETDATE()))-1)/3)*3+1) * 100 +
1
AS VARCHAR(8)),
112)
Это чудовищное выражение, которое можно заменить таблицей календаря.
Если вы запустите его прямо сейчас, вы получите 1 января 2019 года. Если вы запустите его 5 апреля, вы получите 1 апреля. Надеюсь, вы понимаете, как это происходит автоматически.
Теперь мы используем эту дату, чтобы решить, что загрузить в вашу таблицу.
DECLARE @LoadDate DATE
SET @LoadDate =
CONVERT(
DATE,
CAST(
YEAR(GETDATE()) * 10000 +
((((MONTH(GETDATE()))-1)/3)*3+1) * 100 +
1
AS VARCHAR(8)),
112)
-- Delete all the data in the target table after this date:
DELETE TargetTable WHERE TransactionDate >= @LoadDate;
-- Use your ETL tool to load this in:
INSERT INTO TargetTable (TransactionDate, Amount, Account)
SELECT TransactionDate, Amount, Account
FROM SourceTable WHERE TransactionDate >= @LoadDate;
В вашем вопросе недостаточно информации для содержательного ответа, но, возможно, это даст вам представление
Вероятность того, что вы никогда не вернетесь, составляет 95%.