У меня нижеприведенный запрос T- SQL работает правильно в SSMS.
DECLARE @StartDTTM DATE = '2020-04-25'
DECLARE @EndDTTM DATE = '2020-05-02'
CREATE TABLE #Temp
(
D_Date DATE,
)
WHILE @StartDTTM <= @EndDTTM
BEGIN
INSERT INTO #Temp
SELECT @StartDTTM AS D_DATE
SET @StartDTTM = DATEADD(DAY, 1, @StartDTTM)
END
SELECT * FROM #Temp
DROP TABLE #Temp
Но при вызове из C# & System.Data.SqlClient
все столбцы имеют жестко заданную дату начала и дату итерации не берет трубку.
using (SqlCommand cmd = new SqlCommand(QueryText))
{
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
SqlParameter param;
param = new SqlParameter("@StartDTTM", '2020-04-25');
cmd.Parameters.Add(param);
param = new SqlParameter("@EndDTTM", '2020-05-02');
cmd.Parameters.Add(param);
using (SqlDataAdapter da = new SqlDataAdapter())
{
da.SelectCommand = cmd;
da.Fill(ds);
};
};
Редактировать 1: У меня есть дополнительный лог c в запросе. Я пытаюсь получить значения в таблице для даты итерации, попадающей между двумя столбцами даты, в основном снимок значений для даты итерации. Надеюсь, это поможет
Edit 2: при прохождении через SQL Command @StartDTTM
изменяется на значение, а затем запрос передается на SQL. Следовательно, все строки содержат дату начала. Есть обходной путь?