Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.06.2017, 16:41
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию DateDiff

Возможно, не по адресу но привык к форуму.

Задача:
Mysql.
есть t1 c полями id,user
есть t2 с полями user, hDate;
нужно выбрать поля
t1.user если t2.hDate <> тек.дате. Пытаюсь, так, но ничего не возвращает
Код:
SELECT t1.user
FROM t1, t2
WHERE DATEDIFF( CURRENT_DATE( ) , t2.hDate ) <>0
Уже и тильды расставлял, но всегда пусто.
Ответить с цитированием
  #2  
Старый 20.06.2017, 17:25
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 339
Версия Delphi: 10.4
Репутация: 429
Сообщение

А если так попробовать...
Код:
SELECT t1.user FROM t1
INNER JOIN t2 ON t2.User = t1.User
WHERE t2.hDate <> DATE_FORMAT(NOW(), '%Y-%m-%d')
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Ответить с цитированием
  #3  
Старый 20.06.2017, 18:48
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Kailon
А если так попробовать...
Код:
SELECT t1.user FROM t1
INNER JOIN t2 ON t2.User = t1.User
WHERE t2.hDate <> DATE_FORMAT(NOW(), '%Y-%m-%d')
То же пусто. hDate имеет формат 2017-06-17
Ответить с цитированием
  #4  
Старый 20.06.2017, 23:18
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от nixon232
...hDate имеет формат 2017-06-17
Тогда при выборке вместо CURRENT_DATE() попробуйте задействовать CURDATE(), в "мускульнум" справочнике прописано что первая, при использовании в числовом контексте, возвращает число 20170617
Ответить с цитированием
  #5  
Старый 21.06.2017, 09:04
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Код:
SELECT t1.user FROM t1
INNER JOIN t2 ON t2.User = t1.User
WHERE WHERE DATEDIFF( CURDATE( ) , t2.hDate ) <>0 
Код:
 MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 1.0614 сек.)
Если я вас правильно понял
Ответить с цитированием
  #6  
Старый 21.06.2017, 09:20
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Пользую в основном ADO, с Mysql не знаком, но судя по времени ответа вашего движка пробежка по таблицам была произведена, напрашивается вывод - нету там подходящих под выборку данных, значит нужно смотреть что передаётся в запросе на сравнение
Ответить с цитированием
  #7  
Старый 21.06.2017, 09:52
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Код:
 SELECT t2.user, t2.hDate
FROM t2 
Код:
 
user
hDate
1444cfd5115af26c7c609d7c70ea7d63
2017-06-17
Код:
 SELECT t1.id, t1.user
FROM t1
Код:
	
id
user
2
1444cfd5115af26c7c609d7c70ea7d63
Среди прочего, первое что вижу
Ответить с цитированием
  #8  
Старый 21.06.2017, 11:31
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Кстати, без WHERE t.user возвращается нужный
Код:
SELECT t1.user FROM t1
INNER JOIN t2 ON t2.User = t1.User

UPD

Не знаю в чем прикол, но стало находить
Код:
SELECT t1.user
FROM t1
INNER JOIN t2 ON t2.User = t1.User
WHERE DATEDIFF( CURRENT_DATE( ) , t2.hDate ) >0
Всем спасибо

Последний раз редактировалось nixon232, 21.06.2017 в 12:03.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:40.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter