Как составить запрос в MySQL?

L
На сайте с 20.11.2012
Offline
0
530

Привет!

Я очень нуждаюсь в вашей помощи!

Есть таблица Engineers (id, name, join_date[дата трудоустройства, тип date]).

Нужно вывести тех инженеров, которые работают больше года.

Как это сделать? Пожалуйста, помогите мне, если вам не трудно!

O
На сайте с 29.05.2008
Offline
195
#1

SELECT `id`, `name` WHERE Dateadd(`join_date`, INTERVAL 1 YEAR) > Now(); попробуйте.

siv1987
На сайте с 02.04.2009
Offline
427
#2

SELECT * FROM Engineers WHERE `join_date` <= DATE_SUB(`join_date`, INTERVAL 1 YEAR)

L
На сайте с 20.11.2012
Offline
0
#3

Спасибо за ответы! К сожалению, у меня не получилось заставить это работать :(

В таблице Engineers такие данные:

id name join_date

1 петя 2012-11-01

2 вася 2010-12-01

Есть еще какие-нибудь варианты?

siv1987
На сайте с 02.04.2009
Offline
427
#4


SELECT '2010-12-01' < DATE_SUB('2012-11-01', INTERVAL 1 YEAR);
+--------------------------------------------------------+
| '2010-12-01' < DATE_SUB('2012-11-01', INTERVAL 1 YEAR) |
+--------------------------------------------------------+
| 1 |
+--------------------------------------------------------+

Это значит что проблема не в запросе, а вы что-то не то делаете.

L
На сайте с 20.11.2012
Offline
0
#5

SELECT * FROM Engineers WHERE 'join_date' <= DATE_SUB('join_date', INTERVAL 1 YEAR);

почему-то ничего не выводит, несмотря на то, что пример, который вы привели выше, работает. Что я делаю не так?

---------- Добавлено 21.11.2012 в 02:02 ----------

Вот такой запрос SELECT * FROM Engineers WHERE join_date < '2012-11-01'; работает. А ваш нет. Можете что-нибудь посоветовать?

siv1987
На сайте с 02.04.2009
Offline
427
#6

Лол. ну конечно

SELECT * FROM Engineers WHERE `join_date` < CURRENT_DATE - INTERVAL 1 YEAR;

SELECT * FROM Engineers WHERE `join_date` < DATE_SUB(CURRENT_DATE, INTERVAL 1 YEAR)

L
На сайте с 20.11.2012
Offline
0
#7

Спасибо, siv1987. Оба запроса работают!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий