powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / TRUNC TIMESTAMP до минут
25 сообщений из 28, страница 1 из 2
TRUNC TIMESTAMP до минут
    #39779290
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Подскажите, пожалуйста, как округлить время до минут.

Почему-то
SELECT TO_TIMESTAMP(TRUNC(SYSTIMESTAMP, 'MI'), 'DD.MM.YY HH24:MI:SS,FF') FROM DUAL

Даёт результат
26.02.19 00:00:00,000000000

Хотя я ожидаю
26.02.19 13:48:00,000000000
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779301
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonTO_TIMESTAMP(TRUNCДату и к строке, и к timestamp-у приводят другими функциями.
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779303
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,
а можно подробнее?)
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779305
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roomonа можно подробнее?)RTFM, что возвращает TRUNC и что хочет TO_TIMESTAMP. Потом включай мозг.
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779395
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,
не надо грубить. В гугле не нашел, поэтому и написал сюда.

По логике следующий запрос должен округлять до минут, а он округляет до дней.
SELECT TRUNC(SYSTIMESTAMP, 'MI') FROM DUAL

Если функция не та, то прошу подсказать какй функцией можно окргулить до минут.
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779398
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonElic,
не надо грубить. В гугле не нашел, поэтому и написал сюда.

По логике следующий запрос должен округлять до минут, а он округляет до дней.
SELECT TRUNC(SYSTIMESTAMP, 'MI') FROM DUAL

Если функция не та, то прошу подсказать какй функцией можно окргулить до минут.

Код: plsql
1.
2.
3.
select systimestamp, trunc(systimestamp,'MI') from dual;

26.02.19 16:06:06,019982 +03:00	26.02.2019 16:06:00
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779399
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MazoHist, спасибо.

У меня в SQL developer вот такой результат:
26.02.19 16:08:34,624120000 +03:00 26.02.19

В чем может быть причина?
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779400
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonВ гугле не нашелНе там искал. RTFM SQL Language Reference (FAQ)
RoomonЕсли функция не та, то прошу подсказать какй функцией можно окргу лить до минут.
Код: plaintext
RO NU D
Roomonа он округляет до дней.Не он. RTFM TO_CHAR (datetime) + Globalization Support Guide (FAQ)
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779411
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, спасибо. Получилось через to_char.
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779415
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonПолучилось через to_char.Надеюсь, не "округлить"?
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779419
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, мне не принципиально именно округление. Главное было разбить на минутные интервалы.
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779506
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonПолучилось через to_char.
Roomonразбить на минутные интервалы.
Рукалицо...
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779509
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymousРукалицо...
Задача была посмотреть добавление записей в таблицу в разбивке по минутам.
Сделал следующим образом. created_date в формате timestamp изначально
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select
    to_char(created_date,'YYYY-MM-DD HH24:MI'),
    count(*)
from
    t
group by
    to_char(created_date,'YYYY-MM-DD HH24:MI')
order by
    to_char(created_date,'YYYY-MM-DD HH24:MI')


Решение для меня вроде бы работает. Если у меня есть ошибка, или можно сделать намного оптимальнее, то буду рад советам.
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779524
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with t(created_date) as (select systimestamp - numtodsinterval(rownum/7,'second') from dual connect by level < 1000
)
select min(created_date) min_dt
     , max(created_date) max_dt
     , trunc(created_date,'MI') trunc_dt
     , count(*) cnt
from t
group by trunc(created_date,'MI')
order by 1
;

MIN_DT                              MAX_DT                              TRUNC_DT                    CNT
----------------------------------- ----------------------------------- -------------------- ----------
26.02.19 21:04:31,862494286 +03:00  26.02.19 21:04:59,862494286 +03:00  26.02.2019 21:04:00         197
26.02.19 21:05:00,005351429 +03:00  26.02.19 21:05:59,862494286 +03:00  26.02.2019 21:05:00         420
26.02.19 21:06:00,005351429 +03:00  26.02.19 21:06:54,433922857 +03:00  26.02.2019 21:06:00         382

SQL> 
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779611
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous,
как я уже писал выше у меня trunc(created_date,'MI') выдает дату без времени..
Как это можно исправить?
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779623
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonКак это можно исправить?Научиться читать и понимать прочитанное.
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779637
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roomon,

формат "отображения даты по умолчанию" зависит от настроек сессии


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
SQL> alter session set nls_date_format='dd.mm.yyyy';

Session altered.

SQL> select trunc(systimestamp,'mi') t from dual;

T
----------
27.02.2019

SQL> alter session set nls_date_format='dd.mm.yyyy hh24:mi:ss';

Session altered.

SQL> select trunc(systimestamp,'mi') t from dual;

T
-------------------
27.02.2019 09:36:00

SQL> alter session set nls_date_format='FMdd (Day) Month YYYY';

Session altered.

SQL> select trunc(systimestamp,'mi') t from dual;

T
-----------------------------
27 (Середа) Лютий 2019



зи
интересно почему день в маске можна задать дважды, а месяц нет, фича или бага?
ORA-01816: month may only be specified once

....
stax
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779655
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxпочему день в маске можна задать дваждыНи день, ни ночь нельзя.
ORA-01810: format code appears twice
ORA-01812: year may only be specified once
ORA-01813: hour may only be specified once
ORA-01816: month may only be specified once
ORA-01817: day of week may only be specified once
ORA-01818: 'HH24' precludes use of meridian indicator
ORA-01819: signed year precludes use of BC/AD
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779683
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Staxпочему день в маске можна задать дваждыНи день, ни ночь нельзя.
ORA-01810: format code appears twice
ORA-01812: year may only be specified once
ORA-01813: hour may only be specified once
ORA-01816: month may only be specified once
ORA-01817: day of week may only be specified once
ORA-01818: 'HH24' precludes use of meridian indicator
ORA-01819: signed year precludes use of BC/AD

день указал два раза (dd и Day), месяц дает ошибку
почему?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> alter session set nls_date_format='FMdd (Day) Month YYYY';

Session altered.

SQL> ed
Wrote file afiedt.buf

  1* alter session set nls_date_format='FMdd (Day) mm(Month) YYYY'
SQL> /
ERROR:
ORA-01816: month may only be specified once


.....
stax
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779693
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, спасибо большое! Первый нормальный ответ на вопрос в шапке =)

-2-, не нужно умничать. Если по делу нечего сказать - лучше промолчать.

Если бы 2-й ответ в теме сразу был:
Код: plsql
1.
alter session set nls_date_format='dd.mm.yyyy hh24:mi:ss'


то тему можно было бы не развивать..
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779704
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxдень указал два раза (dd и Day)день недели, месяца, года и юлия это не "два раза".

Roomonне нужно умничатьТак и пиши в следующий раз: просьба отвечать только идиотов.

RoomonЕсли бы 2-й ответ в теме сразу был:
Код: plsql
1.
alter session set nls_date_format='dd.mm.yyyy hh24:mi:ss'

то тему можно было бы не развивать..Сомневаюсь, что ты понял, что это не решение, а демонстрация толики того, что стоит прочитать по ссылкам, данным Elic.
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779725
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-Сомневаюсь, что ты понял, что это не решение, а демонстрация толики того, что стоит прочитать по ссылкам, данным Elic.
Для моей текущей ситуации это - решение. Я не разработчик и не системный аналитик.
По ссылкам от Elic я пробежался, но не увидел там, что для NLS_DATE_FORMAT можно не только дни, месяцы и годы указывать.

Если вам не нравятся вопросы от новичка и вы не готовы помочь, то проходите мимо. Зачем впустую тратить своё время?
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779737
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roomonне нравятся вопросы от новичкаПо каким критериям определяешь степень "нравятся"?
Roomonне готовы помочьЭто не платная поддержка с актом сдачи-приемки, чтобы оценивать меру помощи. Не считаю себя лучшим пересказчиком, чем авторы документации, поэтому ограничился советом изучать авторитетные источники.
RoomonЗачем впустую тратить своё время?Заниженная самооценка или ты действительно считаешь, что, отвечая, зря трачу время на дебила?
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779753
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-Заниженная самооценка или ты действительно считаешь, что, отвечая, зря трачу время на дебила?

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

Не вижу смысла продолжать дискуссию с вами. Хорошего дня!
...
Рейтинг: 0 / 0
TRUNC TIMESTAMP до минут
    #39779772
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Не считаю себя лучшим пересказчиком, чем авторы документации


зря (даремно) не считаете себя лучшим пересказчиком

напр в https://docs.oracle.com/database/121/SQLRF/sql_elements004.htm#SQLRF00210
авторTS Yes

Returns a value in the short time format. Makes the appearance of the time components (hour, minutes, and so forth) depend on the NLS_TERRITORY and NLS_LANGUAGE initialization parameters.

Restriction: You can specify this format only with the DL or DS element, separated by white space.


гугль переводит как
Ограничение: Вы можете указать этот формат только с элементом DL или DS, разделенным пробелом.

в тоже время
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> alter session set nls_date_format='fmdd month yyyy ts';

Session altered.

SQL> select sysdate from dual;

SYSDATE
--------------------------
27 лютий 2019 12:24:59



да и с "разделенным пробелом" перебор
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> alter session set nls_date_format='dsts';

Session altered.

SQL> select sysdate from dual;

SYSDATE
------------------
27.02.201912:35:06



....
stax
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / TRUNC TIMESTAMP до минут
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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