Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 округлить дату до недели, декады, полмесяца, месяц  [new]
GrigoriyFomin
Member

Откуда:
Сообщений: 65
есть поле с датой, для PivotGrid хочу сформировать записи с операциями. Округлить таймстемп до даты - не проблема, при этом в пивоте данные выводятся по каждой дате. Как преобразовать дату к 3 дням, неделе, декаде. Например, 1 окт., 3 окт. и 8 окт. для декады имели в обоих случаях 1 окт. В оракле функция ROUND умеет округлять даты к нужному числу ссылка на русскую страницу
как это можно сделать в FireBird? Хотяб по неделю округлить....
1 окт 19, 13:04    [21983774]     Ответить | Цитировать Сообщить модератору
 Re: округлить дату до недели, декады, полмесяца, месяц  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1049
GrigoriyFomin
есть поле с датой, для PivotGrid хочу сформировать записи с операциями. Округлить таймстемп до даты - не проблема, при этом в пивоте данные выводятся по каждой дате. Как преобразовать дату к 3 дням, неделе, декаде. Например, 1 окт., 3 окт. и 8 окт. для декады имели в обоих случаях 1 окт. В оракле функция ROUND умеет округлять даты к нужному числу ссылка на русскую страницу
как это можно сделать в FireBird? Хотяб по неделю округлить....


Аналогично первому дню месяца

Extract week
first day in the week.
1 окт 19, 13:27    [21983809]     Ответить | Цитировать Сообщить модератору
 Re: округлить дату до недели, декады, полмесяца, месяц  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30624

01.10.2019 13:04, GrigoriyFomin пишет:
> есть поле с датой, для PivotGrid хочу сформировать записи с операциями.
> Округлить таймстемп до даты - не проблема, при этом в пивоте данные выводятся по каждой дате.
> Как преобразовать дату к 3 дням, неделе, декаде. Например, 1 окт., 3 окт. и 8 окт. для декады имели в обоих случаях 1 окт.

забудь ты про этот PivotGrid.
это уровень визуализации.
а делфи тут никто не знает (С).

тебе нужно "получить данные".
сформулируй, в каком виде ты хочешь их получить:
"есть ЭТО, хочу ВОТ ЭТО"

Posted via ActualForum NNTP Server 1.5

1 окт 19, 13:28    [21983812]     Ответить | Цитировать Сообщить модератору
 Re: округлить дату до недели, декады, полмесяца, месяц  [new]
GrigoriyFomin
Member

Откуда:
Сообщений: 65
Мимопроходящий,

есть даты 01.10.2019,02.10.2019.......09.10.2019 - для них получить 01.10.2019 или 01-09.10.2019 как строка,
есть 10.10.2019, 11.10,2019.....19.10.2019 - для них получить 10.10.2019 или 10-19.10.2019 как строка,
типа как
extaract(days from :dt) div {нужное мне количество дней для группировки - 3 или 7 или 10} || '.' ||extaract(months from :dt) ||extaract(years from :dt)

ну там с соответсв. lpad для ведущего нуля если нужен.
1 окт 19, 13:52    [21983838]     Ответить | Цитировать Сообщить модератору
 Re: округлить дату до недели, декады, полмесяца, месяц  [new]
pastor
Member

Откуда: Калуга
Сообщений: 1049
GrigoriyFomin
Мимопроходящий,

есть даты 01.10.2019,02.10.2019.......09.10.2019 - для них получить 01.10.2019 или 01-09.10.2019 как строка,


RTFM div, mod, extract
1 окт 19, 13:55    [21983844]     Ответить | Цитировать Сообщить модератору
 Re: округлить дату до недели, декады, полмесяца, месяц  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48638

GrigoriyFomin
есть даты 01.10.2019,02.10.2019.......09.10.2019 - для них получить 01.10.2019 или
01-09.10.2019 как строка,
есть 10.10.2019, 11.10,2019.....19.10.2019 - для них получить 10.10.2019 или 10-19.10.2019
как строка,

А как бы ты это делал с оракловским ROUND()?

Posted via ActualForum NNTP Server 1.5

1 окт 19, 13:55    [21983847]     Ответить | Цитировать Сообщить модератору
 Re: округлить дату до недели, декады, полмесяца, месяц  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30624

01.10.2019 13:52, GrigoriyFomin пишет:
> типа как
> extaract(days from :dt) div {нужное мне количество дней для группировки - 3 или 7 или 10} || '.' ||extaract(months from :dt) ||extaract(years from :dt)

CAST(FLOOR(EXTRACT(DAY FROM dd) / 10) AS INTEGER)

Posted via ActualForum NNTP Server 1.5

1 окт 19, 14:19    [21983882]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить