2012-06-27 3 views
1

Я пишу одну хранимую процедуру, мне нужно передать дату начала и окончания в качестве параметров, по умолчанию имя начала должно быть за 30 дней до сегодняшней даты. Дайте мне некоторые рекомендации для этого.как рассчитать startdate = сегодня-30 дней?

startdate = today-30 days. enddate = сегодня.

Заранее спасибо.

ответ

5
Declare @startdate datetime 

set @startdate = DATEADD(day,-30,getdate()) даст вам дату начала

2

Попробуйте это:

Если и предпочитает использовать типа данных Числа::

set @startdate=dateadd(day,-30,convert(date,getdate())) 
    set @enddate= convert(date,getdate()) 
+0

только для того, чтобы добавить к этому, если вы предпочитаете использовать тип данных даты: 'declare @startdate как date; set @startdate = dateadd (d, -30, GETDATE()); select @startdate;' – Sean

1

Посмотрите на DATEADD проходящей в -30 для перемещение и d в качестве параметра детали даты. Am не рядом с компьютером, чтобы дать вам полный синтаксис.

+1

не рядом с компьютер ?? ;) – Sean

+0

есть также stackoverflow для мобильных телефонов;) –

+0

@SeanW - Я предполагаю, что он означает, что он на смартфоне, не уверен. Надеюсь, он не встроил WiFi или 3G! – MatBailie

1

select DATEADD(dd,-30,getdate()) дадим вам дату начала. и select getdate() предоставит вам окончательный вариант (текущая дата), если вы хотите передать дату окончания с переднего конца, а затем просто замените getdate() с Enddate, идущим от переднего конца.

+0

Благодарю вас всех :) – Lakshmitha

Смежные вопросы