В SQL как вернуть записи, соответствующие дате и месяцу только (игнорировать год) - PullRequest
5 голосов
/ 21 июня 2011

Используя SQL, я хочу вернуть все записи, где дата находится между 1 марта и 31 июня (например), но записи должны охватывать все годы.Есть ли простой способ добиться этого?

Ответы [ 5 ]

1 голос
/ 21 июня 2011

Вот что вы будете делать, если вы используете PL / SQL или Oracle SQL +

SELECT * FROM table
WHERE TO_CHAR(MONTH_COLUMN,'MM/DD') = '06/21'

, это даст вам все строки с датой 21 июня независимо от года.

0 голосов
/ 07 августа 2013

Для SQL Server я буду использовать следующее.Например: с 1 марта по 31 июня

select * from (
select *,DATEFROMPARTS(2011,MONTH(CreateDate),DAY(CreateDate)) as dt from tblAction
) as x
where x.dt between
DATEFROMPARTS(2011,3,1) and
DATEFROMPARTS(2011,6,31)

Проверьте, поможет ли это ..:)

0 голосов
/ 03 января 2013

Попробуй, определенно сработай

ВЫБРАТЬ * С таблицы ГДЕ Месяц (DateColumn) IN (3, 4, 5, 6)

0 голосов
/ 21 июня 2011

Для SQL Server используйте:

select * 
from table 
where month(dtgCol) between 3 and 6
0 голосов
/ 21 июня 2011

Используйте функции даты, чтобы получить Месяц и День Месяца из поля даты и использовать в предложении where.

В зависимости от вашей базы данных названия функций могут различаться. Но это будет в целом как

SELECT * FROM table 
   WHERE Month(dateField) = 6 
       AND (DayOfMonth(dateField) >= 1 AND DayOfMonth(dateField) <= 30)

в SQL Server:

SELECT * FROM table 
       WHERE Month(dateField) = 6 
           AND (Day(dateField) >= 1 AND Day(dateField) <= 30)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...