2016-12-21 7 views
0

В приведенном ниже коде я объявляю дату начала и дату окончания. Ноты относятся к системной дате. Я использую этот код ежедневно.Код запуска ежедневно с сегодняшних дней до сегодняшней даты-400

Declaration type 1 
DECLARE @StartDate string = DateTime.Now.AddDays(-30).ToShortDateString(); 
DECLARE @EndDate string = DateTime.Now.AddDays(-33).ToShortDateString(); 

Declaration type 2 
DECLARE @StartDate string = DateTime.Now.AddDays(-30).ToString(yyyy/mm/dd); 
DECLARE @EndDate string = DateTime.Now.AddDays(-33).ToString(yyyy/mm/dd); 

DROP VIEW IF EXISTS dbo.test; 
CREATE VIEW IF NOT EXISTS dbo.test 
AS 
    EXTRACT ID1 int?, 
    ID2 int?, 
    MeasureDate DateTime, 
    Value float, 
    date DateTime 

    FROM 
      "adl://eclwpsdatalake.azuredatalakestore.net/testfolder/{date:yyyy}/{date:MM}/{date:dd}/Reading.csv" 

USING Extractors.Csv(silent : true, quoting : true, nullEscape : "/N"); 

@xyz = 
    SELECT *, 
     MeasureDate.ToShortDateString() AS DateShort 
    FROM test 
    WHERE Value!=-999 AND date BETWEEN @StartDate AND @EndDate; 

Я хочу использовать системную дату как дату начала и конец (= системный день-400 дней). при запуске этого кода в графе «Работа» отображается пустой ввод, а конечный размер файла - 0 МБ. Мое предположение заключается в том, что формат столбца «дата» не соответствует дате окончания даты начала.

ответ

1

Дата окончания - до даты начала.

В дополнение:

  • Использование сильной типизации, а не преобразовывать ваши даты в строку и полагаться на неявное преобразование.
  • Избегайте вызывать DateTime.Now дважды, чтобы избежать ошибки, если между двумя вызовами происходит полуноча.

    DECLARE @NowDate DateTime = DateTime.Now; 
    DECLARE @StartDate DateTime = @NowDate.AddDays(-33); 
    DECLARE @EndDate DateTime = @NowDate.AddDays(-30); 
    
+0

На самом деле 'DateTime.Now' должен быть снимок во время компиляции, так что вы должны получить только одно значение в сценарии независимо от того, сколько раз вы обратитесь к нему непосредственно в скрипте. Вы наблюдаете что-то по-другому? –

+0

@Michael Rys: нет, это просто защитная память мышц программирования;) –