December 7, 2010 at 3:12 am
I have a table which has a column called TimeStarted.
The formate of the date in this column is YYYY-MM-DD HH:MM:SS
I want to do a SELECT against this table which ONLY pulls back data for today's date.
I have tried the following and it does not bring back any data:
SELECT
s.TaskID,
t.TaskName,
T.TimeStarted,
s.Action,
s.SourceHost As Source_File_Location,
s.DestFileName As Destination_FileName,
t.Success,
t.LastErrorText
FROM
Stats S
JOIN Taskruns T
ON S.TASKID = T.TASKID
WHERE Success not like 'No xfers'
ANDSuccess like 'Failure'
AND Action not like 'Process'
AND T.TimeStarted like (select convert(varchar(10),getdate(),120))
ORDER BY T.TimeStarted DESC
December 7, 2010 at 3:23 am
A Little Help Please (12/7/2010)
I have a table which has a column called TimeStarted.The formate of the date in this column is YYYY-MM-DD HH:MM:SS
Are you saying the column holds a character-type representation of a date, in this format, or the display format of a datetime is as shown? Assuming the latter, then the following will work:
AND (t.TimeStarted >= DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) -- 2010-12-07 00:00:00.000
AND t.TimeStarted < SELECT DATEADD(dd, 0, 1 + DATEDIFF(dd, 0, GETDATE()))) -- 2010-12-08 00:00:00.000
Edit: changed '=>' to '>='
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden
December 7, 2010 at 3:29 am
What is the type of the column TimeStarted? Is it a string or datetime?
Adi
--------------------------------------------------------------
To know how to ask questions and increase the chances of getting asnwers:
http://www.sqlservercentral.com/articles/Best+Practices/61537/
For better answers on performance questions, click on the following...
http://www.sqlservercentral.com/articles/SQLServerCentral/66909/
December 7, 2010 at 3:35 am
Hi,
The latter, the display format of a datetime is as shown.
The column is of Varchar(24) data type.
When I insert the lines you have provided I get the error:
Msg 102, Level 15, State 1, Line 17
Incorrect syntax near '>'.
SELECT
s.TaskID,
t.TaskName,
T.TimeStarted,
s.Action,
s.SourceHost As Source_File_Location,
s.DestFileName As Destination_FileName,
t.Success,
t.LastErrorText
FROM
Stats S
JOIN Taskruns T
ON S.TASKID = T.TASKID
WHERE Success not like 'No xfers'
ANDSuccess like 'Failure'
AND Action not like 'Process'
AND (T.TimeStarted => DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) -- 2010-12-07 00:00:00.000
AND T.TimeStarted < DATEADD(dd, 0, 1 + DATEDIFF(dd, 0, GETDATE()))) -- 2010-12-08 00:00:00.000
ORDER BY T.TimeStarted DESC
December 7, 2010 at 3:43 am
March 7, 2011 at 2:48 am
you could try....
DECLARE @today VARCHAR(10)
select @today = convert(varchar(10),getdate(),120)
then use the parameter in the where clause
AND T.TimeStarted like @today+'%'
or just use
AND T.TimeStarted like (select convert(varchar(10),getdate(),120))+'%'
March 7, 2011 at 5:33 am
Hi,
Would the following not work:
SELECT
s.TaskID,
t.TaskName,
T.TimeStarted,
s.Action,
s.SourceHost As Source_File_Location,
s.DestFileName As Destination_FileName,
t.Success,
t.LastErrorText
FROM
Stats S
JOIN Taskruns T
ON S.TASKID = T.TASKID
WHERE Success not like 'No xfers'
AND Success like 'Failure'
AND Action not like 'Process'
AND convert(datetime,convert(varchar(12),T.TimeStarted)) =
(select convert(datetime,convert(varchar(12),getdate())))
ORDER BY T.TimeStarted DESC
this essentially puts the Timestarted and getdate in the same format, which although it inserts the time, makes it 00:00.000 on both sides of the clause.
Regards,
John
March 7, 2011 at 5:36 am
@john-2 , it would work but its not SARGable. Or at least the date is not, which is what we are interested in here.
See the link i gave previously which describes this.
Viewing 8 posts - 1 through 7 (of 7 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy