2013-07-05 4 views
0

Используется SQL2008 R2. Я пытаюсь получить первый в прошлом месяце в этих двух форматах: '06/01/2013' „2013-06-01“TSQL Только за последний месяц - только дата

я нашел этот код, но он включает в себя время:

SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0) 

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

SELECT RIGHT(DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0),8) 

ответ

0

То, что вы хотите, по-видимому, различные выходы типа символов, которые described here ..

SELECT CONVERT(CHAR(10), DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0), 111) 

SELECT CONVERT(CHAR(10), DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0), 120) 
0

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

convert(varchar, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0), 101) 

Вот еще один интересный способ ... Я печатаю из моей связи, пожалуйста, простите это

Select cast(cast(getdate() as int) as datetime),getdate() 
+0

Это работало too..thanks! –

+0

Выберите cast (cast (getdate() as int) как datetime), getdate() – SQLMason

0

попробовать это, он не имеет строковые преобразования ...

declare @dt DateTime = getDate() 
Select DateAdd(mm,-1, DateAdd(day, 1-day(@dt), 
       datediff(day, 0, @dt))) 

или ...

declare @dt DateTime = getDate() 
Select DateAdd(mm,-1, DateAdd(day, 0, 
       datediff(day, day(@dt)-1, @dt))) 

или, еще проще, ....

declare @dt DateTime = getDate() 
select dateadd(mm, datediff(mm, 1, @dt)-1, 0) 

или, что делает он допускает произвольные месяцы назад ...

declare @dt DateTime = getDate() 
declare @monthsBack tinyInt = 3 
select dateadd(mm, datediff(mm, 1, @dt) - @monthsBack, 0) 
+0

Это возвращает 30 июня, а не 1 июня. – gilly3

+0

подумал, что вы хотели последний месяц. Я исправлю. –

0

Ваш вопрос в основном сводится к тому, как преобразовать datetime в date. Как это:

CONVERT(date, someDate) 

Итак, объединить, что с кодом вы уже должны получить желаемую дату:

SELECT CONVERT(date, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0)) 
Смежные вопросы