powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5.9 - datediff()
5 сообщений из 5, страница 1 из 1
FB 2.5.9 - datediff()
    #40127470
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Код: sql
1.
2.
3.
select datediff ( hour   from timestamp '30.12.2021 18:54:09' to timestamp '30.12.2021 20:40:15' ) as HOURS,
       datediff ( minute from timestamp '30.12.2021 18:54:09' to timestamp '30.12.2021 20:40:15' ) as MINUTES
  from RDB$DATABASE;



Почему данный запрос возвращает разницу 2 часа, тогда как разница 106 минут?
Так и должно быть?

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect test user SYSDBA password masterkey;
Database:  test, User: SYSDBA
SQL> select datediff ( hour   from timestamp '30.12.2021 18:54:09' to timestamp
'30.12.2021 20:40:15' ) as HOURS,
CON>        datediff ( minute from timestamp '30.12.2021 18:54:09' to timestamp
'30.12.2021 20:40:15' ) as MINUTES
CON>   from RDB$DATABASE;

                  HOURS                 MINUTES
======================= =======================
      2.000000000000000       106.0000000000000

SQL>



С уважением, Polesov.
...
Рейтинг: 0 / 0
FB 2.5.9 - datediff()
    #40127474
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PolesovПочему данный запрос возвращает разницу 2 часа, тогда как разница 106 минут?

Потому что результат целый. А целый он вроде бы в соответствии со стандартом.
Если сможешь процитировать кусок стандарта по которому он должен быть дробный -
заведи тикет в трекере.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 2.5.9 - datediff()
    #40127475
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov, в описании функции же написано
  • Функция DATEDIFF не проверяет разницу в более мелких составляющих
даты/времени, чем задана в первом аргументе <unit>. В результате
  • получаем:
  • DATEDIFF (YEAR, DATE '1-JAN-2009', DATE '31-DEC-2009') вернёт 0, но
  • DATEDIFF (YEAR, DATE '31-DEC-2009', DATE '1-JAN-2010') вернёт 1
    • Однако для более мелких составляющих даты/времени имеем:
    DATEDIFF (DAY, DATE '26-JUN-1908', DATE '11-SEP-1973') вернёт 23818 DATEDIFF (DAY, DATE '30-NOV-1971', DATE '8-JAN-1972') вернёт 39
    ...
    Рейтинг: 0 / 0
    FB 2.5.9 - datediff()
        #40127476
    Polesov
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    Симонов Денис,
    понятно, спасибо.
    ...
    Рейтинг: 0 / 0
    FB 2.5.9 - datediff()
        #40127478
    Polesov
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    Dimitry Sibiryakov

    Потому что результат целый ...

    Из ответа Симонова Дениса следует, что дело не в округлении до целого:

    Код: sql
    1.
    2.
    3.
    select datediff ( hour   from timestamp '30.12.2021 19:00:09' to timestamp '30.12.2021 20:40:15' ) as HOURS,
           datediff ( minute from timestamp '30.12.2021 19:00:09' to timestamp '30.12.2021 20:40:15' ) as MINUTES
      from RDB$DATABASE;
    



    Код: powershell
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    SQL> select datediff ( hour   from timestamp '30.12.2021 19:00:09' to timestamp
    '30.12.2021 20:40:15' ) as HOURS,
    CON>        datediff ( minute from timestamp '30.12.2021 19:00:09' to timestamp
    '30.12.2021 20:40:15' ) as MINUTES
    CON>   from RDB$DATABASE;
    
                      HOURS                 MINUTES
    ======================= =======================
          1.000000000000000       100.0000000000000
    
    ...
    Рейтинг: 0 / 0
    5 сообщений из 5, страница 1 из 1
    Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5.9 - datediff()
    Целевая тема:
    Создать новую тему:
    Автор:
    Закрыть
    Цитировать
    Найденые пользователи ...
    Разблокировать пользователей ...
    Читали тему (1): Анонимы (1)
    Читали форум (2): Анонимы (1), Yandex Bot 1 мин.
    Пользователи онлайн (11): Анонимы (8), Yandex Bot, Google Bot 1 мин., Bing Bot 2 мин.
    x
    x
    Закрыть


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