![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дата в IB [IB6.x]
msguns © (2005-02-18 11:43:00)Вот такая проблема: в IB (1) есть формат данных Data, где хранится не только число (дд.мм.гггг), но и время (чч.мм.сс)
Выборки по датам решаются простым диапазоном типа
1.01.2005 00:00:00 - 31.03.2005 23:59:59
Но !!! Есть задачки, где надо выбирать по дням. Например, при сводке статистики прокси надо получить сводные данные о том, сколько каждый клиент юзал инет в днях.
Напрямую запросом вытащить эту инфу из конвертенного сквид-лога нельзя (по крайней мере у меня это не вышло). В рез-те написать ХП, которая выбирает из лога записи за период, прикручивая к вых.НД YEAR, MONTH и DAY, а потом уж со всей этой фигней идут подсчеты. Однако все считается так долго, что нету никакой мочи терпеть (записей в конвертенном логе сотни тысяч).
В результате не придумал ничего лучше, как прикрутить к ибэшной таблице лога доп. чар-поле, куда при конверте вкачиваю дату по шаблону DDMMYYYY. После этого все должно бегать быстрее.
А как использовать дату в натуральном виде ?
msguns (2005-02-18 12:26:00) [21]>ЮЮ © (18.02.05 12:12) [3]
Overflow occured during data type convertion.
conversion error from string "21-JAN-2005 11:46:04.0000".
Даты, ессно, корректны
Johnmen (2005-02-18 12:24:00) [22]>Domkrat © (18.02.05 12:21) [4]
См. вопрос - 1 диалект !!!
Johnmen (2005-02-18 12:23:00) [23]>ЮЮ © (18.02.05 12:12) [3]
Дата не кастуется к численным типам !!!
>msguns © (18.02.05 12:06) [2]
SELECT
IpAddress, COUNT (DISTINCT CAST(ConnectionTime-(CAST('01.01.1900' AS DATE)) AS int))
GROUP BY
IpAddress
Domkrat (2005-02-18 12:21:00) [24]as Date
ЮЮ (2005-02-18 12:12:00) [25]SELECT
IpAddress, COUNT (DISTINCT CAST(ConnectionTime AS int))
GROUP BY
IpAddress
msguns (2005-02-18 12:06:00) [26]>Johnmen © (18.02.05 11:51) [1]
Не понял я, Жень ;(
пример?:
192.168.42.1 12.01.2005 08:20:35
192.168.42.1 12.01.2005 08:20:38
192.168.42.1 12.01.2005 08:24:29
192.168.42.1 12.01.2005 08:28:51
...
192.168.42.1 13.01.2005 08:20:35
192.168.42.1 13.01.2005 08:20:38
192.168.42.1 13.01.2005 08:24:29
192.168.42.1 13.01.2005 08:28:51
Надо получить:
192.168.42.1 2
Johnmen (2005-02-18 11:51:00) [27]Серёга,
CAST(D2-D1-0.5 AS INT), количество полных дней между...