Встроенный SQL-запрос - PullRequest
       7

Встроенный SQL-запрос

0 голосов
/ 06 сентября 2011

У меня есть база данных SQL.Вот таблица под названием Reports, и она выглядит следующим образом:

ID       Date            Year     Title            Links
1        2010-05-03      2010     Report 1         link1.php
2        2010-09-03      2010     Report 2         link2.php
3        2011-01-05      2011     Report 3         link3.php

. Что я пытаюсь достичь, это.Я хочу выбрать все отчеты за 2010–2011 годы, но отчеты за 2010 год могут быть только за сентябрь.

Сейчас у меня есть SQL-оператор, выбирающий все отчеты за два года

$sql = "SELECT * FROM Reports WHERE Year = ".$db->escape($jaar1)." OR jaar = ".$db->escape($jaar2);

Как выбрать Report 2 (потому что он датируется сентябрем 2010 года) и Report 3 (потому что он датируется 2011 годом)?

Ответы [ 3 ]

1 голос
/ 06 сентября 2011

Самый простой способ, на мой взгляд, это использовать оператор BETWEEN...AND.

SELECT * 
FROM `Reports`
WHERE `Date` BETWEEN '2010-09-01' AND NOW()

Обратите внимание на кавычки. Особенно важно около Date, потому что это зарезервированное слово.

1 голос
/ 06 сентября 2011

Предполагая, что столбец Date имеет тип DATE:

SELECT *
  FROM `Reports`
 WHERE (YEAR(`Date`) = 2010 AND MONTH(`Date`) = 9)
       OR YEAR(`Date`) = 2011
0 голосов
/ 06 сентября 2011

общая схема

where year = 2011
or ( year = 2010 and month = 'September' )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...