Страница 1 из 1

Вывод записей прошедшего дня

Добавлено: 2009-11-30 9:49:04
Gloft
Как вывести все записи за прошлый день?

Re: Вывод записей прошедшего дня

Добавлено: 2009-11-30 14:34:23
Fastman
Gloft писал(а):Как вывести все записи за прошлый день?
timestamp присутствует в таблице ? :)

Re: Вывод записей прошедшего дня

Добавлено: 2009-11-30 16:34:35
Gloft
да каждой записи соответствует поле с timestamp

Re: Вывод записей прошедшего дня

Добавлено: 2009-11-30 17:02:10
Fastman
Gloft писал(а):да каждой записи соответствует поле с timestamp
Так а в чем проблема... доки читать иногда надо.
К примеру:

Код: Выделить всё

SELECT SOME_COLUMN FROM SOME_TABLE WHERE TIMESTAMP_COLUMN = GETDATE() - 1

Re: Вывод записей прошедшего дня

Добавлено: 2009-11-30 17:36:16
Gloft
Почему сразу не догадался. А я все с DATEPART морочился.

Re: Вывод записей прошедшего дня

Добавлено: 2009-12-01 9:33:02
Gloft

Код: Выделить всё

SELECT SOME_COLUMN FROM SOME_TABLE WHERE TIMESTAMP_COLUMN = GETDATE() - 1
выше приведенный код не со всем то что нужно как оказалось
он выводит только те сообщения которые были сделаны вчера в тоже время (час:минуты:секунды) что и текущий запрос

вот то как это в итоге работает у меня:

Код: Выделить всё

SELECT 
	SOME_COLUMN
FROM
	SOME_TABLE
WHERE
	DATEPART(dd, TIMESTAMP_COLUMN) = (SELECT DATEPART(dd, (GETDATE()-1)))
	AND
	DATEPART(mm, TIMESTAMP_COLUMN) = (SELECT DATEPART(mm, (GETDATE()-1)))
	AND
	DATEPART(yyyy, TIMESTAMP_COLUMN) = (SELECT DATEPART(yyyy, (GETDATE()-1)))

Re: Вывод записей прошедшего дня

Добавлено: 2009-12-01 12:52:03
Fastman
Gloft писал(а):

Код: Выделить всё

SELECT SOME_COLUMN FROM SOME_TABLE WHERE TIMESTAMP_COLUMN = GETDATE() - 1
выше приведенный код не со всем то что нужно как оказалось
он выводит только те сообщения которые были сделаны вчера в тоже время (час:минуты:секунды) что и текущий запрос

вот то как это в итоге работает у меня:

Код: Выделить всё

SELECT 
	SOME_COLUMN
FROM
	SOME_TABLE
WHERE
	DATEPART(dd, TIMESTAMP_COLUMN) = (SELECT DATEPART(dd, (GETDATE()-1)))
	AND
	DATEPART(mm, TIMESTAMP_COLUMN) = (SELECT DATEPART(mm, (GETDATE()-1)))
	AND
	DATEPART(yyyy, TIMESTAMP_COLUMN) = (SELECT DATEPART(yyyy, (GETDATE()-1)))
Ну я для примера привел. Даже вашу существующую запись можно переписать парой разных способов )
К примеру, не выковыривать по частям дату...а преобразовать к виду "дата без времени"
што то типа так:

Код: Выделить всё

declare @dtm datetime
set @dtm = '2009-11-02 01:11:10.290'
select (convert(datetime,convert(varchar,@dtm,1),1))
------------------------------------------------------ 
2009-11-02 00:00:00.000
(1 row(s) affected)
Плюс, в 2008 MSSQL появился тип DATE к которому можно преобразовать.