Home > Software design >  Timeserial not recognized built in function in MS SQL
Timeserial not recognized built in function in MS SQL

Time:01-04

I am trying to implement an SQL query that gets records between today's fixed timing 18:00 and yesterday's fixed timing 18:00 based on a Date time column that I have in my table.

I tried this query

DECLARE @today date = GETDATE()
SELECT * 
FROM mytab
WHERE datetimecolumn Between @today-1   TimeSerial(18,0,0) 
                              And @today     TimeSerial(18,0,0)

But, it's throwing an error Timeserial is not a recognized built-in function name.

Any ideas please?

CodePudding user response:

It would be best to use the DATEADD() function to add the time to the date you want. In this example, it subtracts 6 hours from the first number to get 18:00 yesterday, and then adds 18 hours to get 18:00 today.

DECLARE @today date = GETDATE();
SELECT * FROM mytab WHERE datetimecolumn Between DATEADD(hour,-6,@today) And DATEADD(hour,18,@today);
  •  Tags:  
  • Related