Я хотел создать диапазоны datetime
в SQL Server 2000. Я хочу что-то, что будет совместимо с 2000, 2005 и 2008 годами. Если это будет совместимо с 2012 годом, это тоже будет здорово.Нужна помощь в изменении моего кода SQL
Итак, я нашел ответ здесь - Generate Dates between date ranges. Но я хочу два столбца вместо 1. Я хочу, чтобы столбец даты начала и столбец даты окончания. Как изменить запрос ниже, чтобы получить его?
-- Declarations
DECLARE @dates TABLE(dt datetime)
DECLARE @dateFrom datetime
DECLARE @dateTo datetime
SET @dateFrom = '2001/01/01'
SET @dateTo = '2001/01/12'
-- Query:
WHILE(@dateFrom < @dateTo)
BEGIN
SELECT @dateFrom = DATEADD(day, 1,@dateFrom)
INSERT INTO @dates
SELECT @dateFrom
END
-- Output
SELECT * FROM @dates
Мой код -
DECLARE @dates TABLE(StartDate datetime, EndDate datetime)
DECLARE @dateFrom datetime
DECLARE @dateTo datetime
DECLARE @StartDate datetime
DECLARE @EndDate datetime
SET @dateFrom = '2001/01/01'
SET @dateTo = '2001/01/12'
WHILE(@dateFrom < @dateTo)
BEGIN
SELECT @dateFrom, @dateFrom = DATEADD(day, 1,@dateFrom)
INSERT INTO @dates
SELECT @dateFrom
END
SELECT * FROM @dates
Ошибка - оператор SELECT заявление, которое присваивает значение переменной не должно быть объединено с операциями данными поиска.
1) добавить столбец '@ dates' 2) изменить' INSERT' заявление. На какую часть вы застряли? –
гораздо проще сделать это, используя таблицу чисел, и она будет свободной от цикла. –
Можете ли вы предоставить некоторые примеры данных, чтобы уточнить, что вы подразумеваете под ... «Я хочу два столбца вместо 1» – RThomas