2016-03-07 2 views
0

Я использую приведенный ниже код, чтобы отфильтровать записи, где сегодняшняя дата находится между датой и датой.Где сегодня дата inbetween from и todate

SELECT * FROM [dbo].[QUANTITY] where (getdate() >= fromdate and (todate = '1900-01-01 00:00:00.000')) or (getdate() between fromdate and todate) 

Потому что в некоторых записях с даты и на сегодняшний день являются 1900-01-01 00: 00: 00,000

enter image description here

нужно проверить, если я фильтруя его правильно.

+0

это не mysql синтаксис. mssql, возможно? для mysql вы просто делаете 'WHERE curdate() BETWEEN fromdate AND todate' –

ответ

0

Я не верю, что вам нужно использовать в любом месте между

SELECT * 
FROM [dbo].[QUANTITY] 
WHERE fromdate <= GETDATE() 
     AND (todate = '1900-01-01 00:00:00.000' OR todate >= GETDATE()) 
0

Это немного трудно точно сказать, что вы просите, но если вы хотите просто те, где даты находятся между fromDate и toDate, просто сделать:

SELECT * 
FROM [dbo].[QUANTITY] 
WHERE getdate() BETWEEN fromDate AND toDate 

Если вы хотите период, начиная с чем-то отличается от «никакой ценности» (1900-01-01) и заканчивая «никакой ценности» (1900-01-01) (X до бесконечности), то сделать:

SELECT * 
FROM [dbo].[QUANTITY] 
WHERE getdate() BETWEEN fromDate AND toDate 
OR (toDate = '1900-01-01 00:00:00' AND getdate() BETWEEN fromDate AND getdate()) 
Смежные вопросы