Выберите строки, где номер дня меньше заданного порога - PullRequest
0 голосов
/ 15 марта 2012

У меня есть столбец отметки времени.Скажем, я хочу получить строки с номером дня в году <50 </p>

, где 1 января = 1 и 31 декабря = 366

Так что функция не привязана к году, я хочу получить результаты между дневным диапазоном, например, 50 и 100 для всех лет.

Пример

Отметка времени

  1. 2012-02-01
  2. 2011-02-01
  3. 2012-04-01

Итак, получим те результаты, где DAY <50вернул бы результаты: 1 и 2, но НЕ 3. </p>

Ответы [ 3 ]

1 голос
/ 15 марта 2012

Вы можете использовать функцию DAYOFYEAR() для столбца метки времени в предложении WHERE:

SELECT *
FROM tbl
WHERE DAYOFYEAR(timestamp_col) < 50

Поскольку день 50 наступает до 29 февраля, не будет никаких соображений относительно високосного года.

0 голосов
/ 15 марта 2012

Вы можете использовать это:

SELECT TO_DAYS(yourdate) - TO_DAYS(CONCAT(YEAR(yourdate), '-01-01'))  + 1
0 голосов
/ 15 марта 2012

Попробуйте это:

  SELECT * FROM TableA 
  WHERE  DAYOFYEAR(DateCol) < 50 -- for < 50



SELECT * FROM TableA 
WHERE  DAYOFYEAR(DateCol) between 50 and 100 --between a day range e.g. 50 and 100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...