-
Здраствуйте,
вопрос такой,
в базе дата записана форматом 0000-00-00
запрос соответственно такой:
SELECT * FROM users WHERE `date`='2006-12-02';
как правильно сформировать запрос чтобы в поиске игнорировался день 02,
так чтобы результамом поиска выдало всех пользователей которые зарегестрировались 2006-12 не обращая внимая на сам день?
-
Привет!
Попробуйте такую конструкцию запроса
SELECT *
FROM users
WHERE `date` REGEXP '2006-12';
-
Как вариант:
SELECT *
FROM users
WHERE `date` LIKE 2006-12%
-
Согласен с Wolf!
% - заставляют запрос быть гибким.
Но хорошим плюсом будет хранить даты и время в базе в формате Unix. Тогда и выборку можно будет сделать с любой "точностью". Как именно это сделать ищите в подобном вопросе, в этом же разделе на форуме.
-
Ребята, помогите. Такой вопрос, а как можно поверху баззы данных писать с двух ресурсов, а то у меня есть одна база данных магазина и есть еще один ресурс хочу чтобы с него тоже все импортилось в ту же базу данных, почему то просто не хочет конектиться база [Only registered and activated users can see links. Click Here To Register...]
-
дату можно записивать по разному,
например создать для года, месяца і дня три разные поля тогда б запрос выглядел так:
SELECT * FROM users WHERE `month`='12' AND `year`='2006'
какоето время я так и делал, но всетаки лучше использовать функции встроеные в скул. [Only registered and activated users can see links. Click Here To Register...]
всем спасибо. [Only registered and activated users can see links. Click Here To Register...]k:
-
по таким базам поисr не делают, нужно использовать search index, за поиски :-)
-
Цитата:
Originally posted by firstrow@Dec 8 2006, 03:38
Здраствуйте,
вопрос такой,
в базе дата записана форматом 0000-00-00
запрос соответственно такой:
SELECT * FROM users WHERE `date`='2006-12-02';
как правильно сформировать запрос чтобы в поиске игнорировался день 02,
так чтобы результамом поиска выдало всех пользователей которые зарегестрировались 2006-12 не обращая внимая на сам день?
<div align='right'>[Only registered and activated users can see links. Click Here To Register...]
[/quote]
В вашем случае будет правильнее:
SELECT * FROM users WHERE date BETWEEN '2006-12-01' AND '2006-12-31';
-
Цитата:
Originally posted by yuriyy@Dec 8 2006, 06:29
Привет!
Попробуйте такую конструкцию запроса
SELECT *
FROM users
WHERE `date` REGEXP* '2006-12';
<div align='right'>[Only registered and activated users can see links. Click Here To Register...]
[/quote]
Чуть неверно т.к. при запросе:
SELECT *
FROM users
WHERE `date` REGEXP '2006-1';
Выбирутся 1, 10, 11, 12 месяцы! Хотя не не выбирутся... там же 0 приписывается в месяц...
Но регулярки в таких простых операциях это глюк...
При проиндексированом столблце и миллионе записей запрос повиснет минут на 5.