마지막 날부터 모든 기록이 필요합니까? 이 쿼리tsql을 사용하여 전날의 기록을 얻는 방법?
안녕
Select * from table1 where tabledate > getdate() -1
, 난 정확히 자정 이후 정확한 결과를 얻을 수있다 실행해야합니다. 낮에는 그것을 실행하고 전날의 모든 기록을 가져와야합니다. SQL Server 2005에서
마지막 날부터 모든 기록이 필요합니까? 이 쿼리tsql을 사용하여 전날의 기록을 얻는 방법?
안녕
Select * from table1 where tabledate > getdate() -1
, 난 정확히 자정 이후 정확한 결과를 얻을 수있다 실행해야합니다. 낮에는 그것을 실행하고 전날의 모든 기록을 가져와야합니다. SQL Server 2005에서
, 이것은 일반적으로 날짜로 날짜를 변환하는 가장 빠른 방법입니다 : 귀하의 경우
DATEADD(day, DATEDIFF(day, 0, yourDate), 0)
, 그것은 한 번만 이루어집니다, 그래서하지 않는 방법 정말 문제가 많은. 그러나 다음과 같은 쿼리를 제공합니다.
Select
*
from
table1
where
tabledate >= DATEADD(day, DATEDIFF(day, 0, getDate()) - 1, 0)
AND tabledate < DATEADD(day, DATEDIFF(day, 0, getDate()), 0)
이 페이지를 확인하십시오. 그것은 날짜를 계산하기위한 훌륭한 자료입니다.
또 다른 방법은 혼자 DATEDIFF
을 사용하는 것입니다
SELECT * FROM table1
WHERE DATEDIFF(DAY, tabledate, GETDATE()) = 1
일 1의 DATEDIFF는 전날에있는 시간을 포함한다.
DECLARE @d SMALLDATETIME;
SET @d = DATEDIFF(DAY, 0, GETDATE());
SELECT <cols> FROM dbo.table1
WHERE tabledate >= DATEADD(DAY, -1, d)
AND tabledate < @d;
이 시도 :
your_field = cast(dateadd(D,-1,getdate()) as DATE)
([전날 모든 행을 선택하는 SQL 문]의 가능한 중복 https://stackoverflow.com/questions/1503298/sql-statement-to-select -all-rows-from-day-day) –