tags:

views:

25

answers:

2

I have a smalldatetime field named myTime recording when the record was created. I need the syntax that selects records created within the last hour.

thought it would be:

and DATEDIFF("hh", datePart(hh, myTime), DatePart(hh, GETDATE()) < 1

where datediff 1) looks for hours; 2) looks at the hours portion of the data in myTime as starting; 3) looks at the hours portion of now for ending 3) produces an int that gets compared to '1'

the results i'm getting are clearly way, way off base cuz umm...clearly...i don't know what i'm doing.

help? thx

ADDENDUM: Since both answers essentially agree, the fact that this isn't returning anything for me must trace to how my table's been created. It's created by LogParser working against IIS logs and has date/time info spread across 2 different fields. 'Date' holds just the date info where today's records all look like: '2010-06-08 00:00:00.000' and the Time field looks like: 2010-01-01 15:02:51.000 (the date portion for all records is Jan 01 of 01).

sry ...should have included this info first time 'round.

+4  A: 

Use this:

SELECT  *
FROM    Whatever
WHERE   myTime > DATEADD(HOUR, -1, GETDATE())
Sam
6 seconds ahead of me, and with code blocks to boot! +1
Mike M.
+1  A: 

use SELECT * FROM YourTable WHERE YourDateTime >= DATEADD(hh, -1, GETDATE())

Mike M.