2014-11-13 3 views
0

Я использовал массу ключевых слов для поиска информации об этом, но ничего не появлялось каждый раз, когда я нажимал enter, это немного удивительно для меня.DateAdd Syndrome

Мой вопрос заключается в следующем:

У меня есть функции в моем запросе, чтобы вернуть мне определенную область времени в месяц брутто продаж неделю. Это выглядит следующим образом:

DECLARE @StartDate DATETIME, @EndDate DATETIME 
SET @StartDate= **DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 6)** 
SET @EndDate= **DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 12)** 

EXEC dbo.lvs_SalesSummaryRpt @EndDate [email protected], @StartDate = @StartDate 

и я один на весь месяц, а также:

DECLARE @StartDate DATETIME, @EndDate DATETIME 
SET @StartDate=**CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),101)** 
SET @EndDate=**DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))** 

EXEC dbo.lvs_SalesSummaryRpt @EndDate [email protected], @StartDate = @StartDate 

Теперь те области, которые я полужирный, я скопировал и вставил в избранная в новый набор данных в SSRS, с этими новыми наборами данных я могу применить выражение = First (Fields! BegOfWeek.Value, «WeekDS»), чтобы он вернул мне временные рамки для любого месяца, на который они смотрят. Это замечательно, то же самое для дня. Я не могу, чтобы жизнь меня определяла, как делать дни, в частности, шестой и седьмой месяца.

Я чрезвычайно новичок в этом синтаксисе, и единственная причина, по которой у меня есть эти другие примеры, - это то, что они были предоставлены мне, мне трудно усвоить эти функции даты и как заставить их работать, и я чувствуя себя довольно глупым на данный момент.

Может ли кто-нибудь мне помочь?

я не смог смелой кода из-за его формат, поэтому обратите внимание, что эти районы окружены * s

Я думаю, что я мог бы дать больше информации. Набор данных у меня за день, таким образом:

DECLARE @StartDate DATETIME, @EndDate DATETIME 
SET @StartDate='11/6/2014' 
SET @EndDate='11/7/2014' 

EXEC dbo.lvs_SalesSummaryRpt @EndDate [email protected], @StartDate = @StartDate 

и теперь я надеюсь, что вы можете увидеть мое замешательство, я не могу использовать 11/6/2014 и 11/7/2014, потому что те являются статическими даты и мне нужно, чтобы это быть динамичным до того месяца, который они хотят.

ответ

1

Я ответил на свой вопрос, я действительно верю, поскольку он сейчас работает так, как должен.

SELECT DATEADD(mm,DATEDIFF(mm,0,GETDATE()),5) as BegDay 

SELECT DATEADD(mm,DATEDIFF(mm,0,GETDATE()),6) as EndDay 

Это была действительно утомительная пара дней, но я чувствую себя все более и более комфортно. Вещь, над которой мне нужно работать, не волнует F, всякий раз, когда я сталкиваюсь с чем-то новым. Я бы сказал спасибо ..... но кому? СПАСИБО МНЕ!

Остальные из вас, надеюсь, это поможет, но я сомневаюсь, что у кого-то будет эта проблема. Я новичок.

Просто для этого я также должен был преобразовать это в формат, который я не хотел отображать часы. Я делал это день и месяц.

день:

SELECT Convert(date,GETDATE()) as BegDay, 
    Convert(date,dateadd(d,1,GETDATE())) as EndDay 

Месяц:

Select CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),101) as BegofMonth, 
CONVERT(Date,DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))) as EndofMonth