Domanda

How can I get the range between a day dynamically for e.g. BETWEEN 23.05.2012 00:00 AND 23.05.2012 23:59 using MSSQL ?
I got the first part;

WHERE
AND s.SCHEDULE_START_DATE BETWEEN dateadd(DAY, datediff(DAY, 0, getdate()), 0) AND FILL HERE
È stato utile?

Soluzione

You will have to try something like

s.SCHEDULE_START_DATE >= dateadd(DAY, datediff(DAY, 0, getdate()), 0)
AND s.SCHEDULE_START_DATE < (dateadd(DAY, datediff(DAY, 0, getdate()), 0) + 1)

Have a look at the below example

SQL Fiddle DEMO

Altri suggerimenti

Try this one -

Query:

DECLARE @Dates TABLE
(
    SCHEDULE_START_DATE DATETIME
)

INSERT INTO @Dates 
VALUES 
    ('20130522'),
    ('20130523'),
    ('20130524'),
    ('20130523 18:00:00'),
    ('20130523 23:59:59')

DECLARE 
      @DateFrom DATETIME = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
    , @DateTo DATETIME = DATEADD(SECOND, 86399, DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0))

SELECT *
FROM @Dates
WHERE SCHEDULE_START_DATE BETWEEN @DateFrom AND @DateTo

Output:

SCHEDULE_START_DATE
-----------------------
2013-05-23 00:00:00.000
2013-05-23 18:00:00.000
2013-05-23 23:59:59.000
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top