powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / сравнение DATETIME
11 сообщений из 11, страница 1 из 1
сравнение DATETIME
    #32954946
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача:
сделать выборку полей из таблицы users по условию что поле datetime типа datetime 0000-00-00 00:00:00 у пользователей (user_type = -1) больше чем поле datetime единственного администратора в этой же таблице (user_type = 0)

вот приблизительно то что собираюсь делать:

Код: plaintext
1.
2.
3.
4.
SELECT u1.username, u1.email, u1.IP 
FROM users u1 
LEFT JOIN users u2 ON u1.user_type = '0'
WHERE u1.user_type = '-1' AND u1.datetime > u2.datetime

вопрос:
1) как этот запрос написать правильно (совет, комментарий, пример)
2) нужно ли для сравнения полей типа datetime конвертить их в time stamp и приводить типы ?

просто раньше всегда хранил просто в числовом поле тайм стэмп от пхп теперь решил нагрузить всякими конвертациями базу а не пхп и столкнулся с этим делом впервые :\
...
Рейтинг: 0 / 0
сравнение DATETIME
    #32955098
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут недавно на тему даты и времени McLighterу давали ссылочки, вы тоже их почитайте...
...
Рейтинг: 0 / 0
сравнение DATETIME
    #32955248
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может проще через переменную обработать в два запроса?

Первым вытащить DateTime для user_type=0
А потом, используя переменную, выбрать из таблицы остальных!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SET @n:='';

SELECT @n:=u.datetime FROM users u
WHERE user_type= 0 
LIMIT  1 ;

SELECT * FROM users u
WHERE
u.datetime >= @n;

Код: plaintext
mahoune
...
Рейтинг: 0 / 0
сравнение DATETIME
    #32955291
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DocAlТут недавно на тему даты и времени McLighterу давали ссылочки, вы тоже их почитайте...

с удовольствием почитаю, но раз такой совет то как бесплатное приложение к нему можно ссылочку на ветку ?
...
Рейтинг: 0 / 0
сравнение DATETIME
    #32955307
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mahouneМожет проще через переменную обработать в два запроса?

Первым вытащить DateTime для user_type=0
А потом, используя переменную, выбрать из таблицы остальных!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SET @n:='';

SELECT @n:=u.datetime FROM users u
WHERE user_type= 0 
LIMIT  1 ;

SELECT * FROM users u
WHERE
u.datetime >= @n;

Код: plaintext
mahoune


была такая мысль, но дело в том что прийдётся делать 2 обращения к базе от пхп ... этого и стараюсь избежать то есть сделать всё одним СКЛ запросом, но как я понял при сравнении datetime полей нет необходимости делать таймстэмп и приводить типы ? достаточно обычного сравнения ?
...
Рейтинг: 0 / 0
сравнение DATETIME
    #32955367
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
достаточно
------------------
да пребудет с вами гугл!
...
Рейтинг: 0 / 0
сравнение DATETIME
    #32955406
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SELECT u1.username, u1.email, u1.IP FROM users u1 LEFT JOIN users u2
ON u2.user_type = '0' WHERE u1.user_type = '-1' AND u1.datetime > u2.datetime;
ты перепутал таблицы в условии ON
------------------
да пребудет с вами гугл!
...
Рейтинг: 0 / 0
сравнение DATETIME
    #32955411
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стоп, у тебя поле user_type текстовое что ли?
------------------
да пребудет с вами гугл!
...
Рейтинг: 0 / 0
сравнение DATETIME
    #32955455
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoстоп, у тебя поле user_type текстовое что ли?
------------------
да пребудет с вами гугл!

user_type tinyint(4)
...
Рейтинг: 0 / 0
сравнение DATETIME
    #32955463
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo
Код: plaintext
1.
SELECT u1.username, u1.email, u1.IP FROM users u1 LEFT JOIN users u2
ON u2.user_type = '0' WHERE u1.user_type = '-1' AND u1.datetime > u2.datetime;
ты перепутал таблицы в условии ON
------------------
да пребудет с вами гугл!

точно, спасибо :) ... это я так, с лёту писал без проверки
...
Рейтинг: 0 / 0
сравнение DATETIME
    #32955472
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВСЕМ СПАСИБО :)
тема закрыта.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / сравнение DATETIME
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]