The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"запрос select с датой и временем в условии"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"запрос select с датой и временем в условии"  
Сообщение от developer1 (??) on 01-Ноя-07, 13:51 
Всем привет!
Есть таблица регистрации входов/выходов с полями id_card и daterecord TimeStamp. Как написать запрос, выбирающий пришедших после 8:00? Мое решение для одного дня:
select id_card,min(daterecord) from accesslog
where date(daterecord)='2007-10-23' and time(daterecord)>='08:00:00' and time (daterecord)<='23:59:59'
and id_card not in
(select id_card from accesslog
where date(daterecord)='2007-10-23' and time(daterecord)>='00:00:00' and time (daterecord)<'07:59:59')
group by id_card
order by daterecord
Помогите написать запрос, выбирающий опоздавших за период, например, неделю? Может и мой запрос можно как-то написать по другому?
Заранее спасибо!
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "запрос select с датой и временем в условии"  
Сообщение от angra (ok) on 02-Ноя-07, 08:39 
Не совсем понятно зачем вторая часть запроса если первый where уже выбирает нужное. А вообще удобней использовать between
select id_card,min(daterecord) from accesslog
where
(date(daterecord) between '2007-10-23' and '2007-10-30')
and
(time(daterecord) between '08:00:00' and '23:59:59')
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "запрос select с датой и временем в условии"  
Сообщение от developer1 (??) on 02-Ноя-07, 08:49 
>Не совсем понятно зачем вторая часть запроса если первый where уже выбирает
>нужное.

Вторая часть запроса отсеивает тех, кто пришел до восьми, потом вышел и еще раз вошел позднее. Именно в этом и проблема.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "запрос select с датой и временем в условии"  
Сообщение от tux2002 email on 03-Ноя-07, 10:47 
select s1.card_id, s1.data, s1.begin_time, s2.end_time from
(select id_card id_card, date(daterecord) data, min (time(daterecord)) begin_time
from accesslog group by id_card, date(daterecord)) s1,
(select id_card id_card, date(daterecord) data, max (time(daterecord)) end_time
from accesslog group by id_card, date(daterecord)) s2 where s1.id_card=s2.id_card and s1.data=s2.data


Выборка по всем датам, сотрудникам, когда пришёл - когда ушёл. Из неё уже можете выбирать по другим условиям. Может ошибся, не проверял, не пинайте, Удачи

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "запрос select с датой и временем в условии"  
Сообщение от tux2002 email on 03-Ноя-07, 11:03 
PS s1 и s2 можно сразу суэить до интересующего диапазона дат.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "запрос select с датой и временем в условии"  
Сообщение от developer1 (??) on 06-Ноя-07, 13:38 
Все работает! Большое спасибо!!!
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру