powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / группировка по дате
20 сообщений из 20, страница 1 из 1
группировка по дате
    #33904800
rec15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть такой запрос на postgre

select sum(VALUE), date_trunc('day',TIMESTAMP) as d from LOGS where TIMESTAMP>='2006-07-01 00:00:00' and TIMESTAMP<='2006-07-31 23:59:59' group by d


как мне его выполнить на sybase, т.е. меня интересует есть ли в sybase аналогичная функция усечения даты?
...
Рейтинг: 0 / 0
группировка по дате
    #33904825
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DATEPART('Day', TIMESTAMP)
...
Рейтинг: 0 / 0
группировка по дате
    #33904835
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В дополнении первый параметр функции datepart может принимать значения
Year 1–9999
Quarter 1–4
Month 1–12
Week 1–54. Weeks begin on Sunday.
Day 1–31
Dayofyear 1–366
Weekday 1–7 (Sunday = 1, ..., Saturday = 7)
Hour 0–23
Minute 0–59
Second 0–59
Millisecond 0–999
...
Рейтинг: 0 / 0
группировка по дате
    #33905023
Алексей Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гораздо лучше использовать datediff
Код: plaintext
1.
select sum(VALUE), date_trunc('day',TIMESTAMP) as d from LOGS where TIMESTAMP>='2006-07-01 00:00:00' and TIMESTAMP<='2006-07-31 23:59:59' group by d
...
Рейтинг: 0 / 0
группировка по дате
    #33905031
Алексей Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
select sum(VALUE)
, dateadd(day,datediff(day,'19800101',TIMESTAMP),'19800101') as d 
from LOGS where TIMESTAMP>='2006-07-01 00:00:00' and TIMESTAMP<='2006-07-31 23:59:59' group by d

а то если взять период побольше - пойдут ошибки
...
Рейтинг: 0 / 0
группировка по дате
    #33905310
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Л.
Код: plaintext
1.
2.
3.
4.
select sum(VALUE)
, dateadd(day,datediff(day,'19800101',TIMESTAMP),'19800101') as d 
from LOGS where TIMESTAMP>='2006-07-01 00:00:00' and TIMESTAMP<='2006-07-31 23:59:59' group by d

а то если взять период побольше - пойдут ошибки

Все правильно, я просто не сразу глянул что date_trunc умеет делать.
Но тогда вообще просто с его запросом в Sybase:
select sum(VALUE), convert(date,TIMESTAMP) as d from LOGS where TIMESTAMP>='2006-07-01 00:00:00' and TIMESTAMP<='2006-07-31 23:59:59' group by d
...
Рейтинг: 0 / 0
группировка по дате
    #33905576
rec15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все правильно, я просто не сразу глянул что date_trunc умеет делать.
Но тогда вообще просто с его запросом в Sybase:
select sum(VALUE), convert(date,TIMESTAMP) as d from LOGS where TIMESTAMP>='2006-07-01 00:00:00' and TIMESTAMP<='2006-07-31 23:59:59' group by d

А как мне здесь convert() может помочь? Ведь TIMESTAMP и так имеет формат даты. Связка datediff(), dateadd() хорошо подходит.

Кстати где можно найти документацию по функциям sybase?
...
Рейтинг: 0 / 0
группировка по дате
    #33905586
Алексей Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
группировка по дате
    #33905593
rec15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASE 12.5
...
Рейтинг: 0 / 0
группировка по дате
    #33905619
Алексей Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда должно быть так
Код: plaintext
1.
2.
3.
4.
5.
6.
select sum(VALUE)
, dateadd(day,datediff(day,'19800101',TIMESTAMP),'19800101') 
  from LOGS 
  where TIMESTAMP>='2006-07-01 00:00:00' and TIMESTAMP<='2006-07-31 23:59:59' 
  group by dateadd(day,datediff(day,'19800101',TIMESTAMP),'19800101')

convert(date,TIMESTAMP) непройдет
...
Рейтинг: 0 / 0
группировка по дате
    #33905623
Алексей Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
convert(date,TIMESTAMP) непройдет, т.к. в ASE нет типа данных
date - только datetime
...
Рейтинг: 0 / 0
группировка по дате
    #33905748
rec15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Л.convert(date,TIMESTAMP) непройдет, т.к. в ASE нет типа данных
date - только datetime
Понятно.
А документацию по функциям не подскажете где взять?
...
Рейтинг: 0 / 0
группировка по дате
    #33905771
Алексей Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
группировка по дате
    #33906057
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Л.convert(date,TIMESTAMP) непройдет, т.к. в ASE нет типа данных
date - только datetime

Согласен.
Но тогда может проще
convert(VARCHAR(10),TIMESTAMP,103)
Возвратит строку dd/mm/yyyy
И в ASE пройти должна.
...
Рейтинг: 0 / 0
группировка по дате
    #33906086
Алексей Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен, но если потребуется сортировка то все сложнее
...
Рейтинг: 0 / 0
группировка по дате
    #33906105
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Л.Согласен, но если потребуется сортировка то все сложнее
И я согласен.
Но автор про сортировку вроде не упоминал, А при сортировке конечно надо, чтобы на выходе, н-р тип DateTime был.
...
Рейтинг: 0 / 0
группировка по дате
    #33906881
rec15
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо всем за помощь. Сортировка это хорошо, но в данном случае не потребовалось, т.к. всё автоматически отсортировалось по дням.
...
Рейтинг: 0 / 0
группировка по дате
    #34170596
Serg_Avangard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А в Оракле как сделать тоже самое?
...
Рейтинг: 0 / 0
группировка по дате
    #34170611
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg_Avangard wrote:

> А в Оракле как сделать тоже самое?

Во-первых, нахрена ты поднял древний топег, во-вторых, это эха по
Sybase, а не по Ораклу ;).
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
группировка по дате
    #34170695
Serg_Avangard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Развернутый и ясный ответ :)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / группировка по дате
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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