Quantcast
Channel: SQL.ru: Firebird, InterBase
Viewing all articles
Browse latest Browse all 1677

округление чисел при работе с данными

$
0
0
Тут кто-то опять на грабли наступил, взял дату-время сохранённые как double (как это часто делают Excel, Delphi), прибавил к дате.... И получил дату гуляющую на день вперёд-назад.

https://stackoverflow.com/questions/54574918/how-to-convert-double-precision-column-to-date-correctly/54588452#54588452

select
  41516.514479,
  cast( 41516.514479 as integer),
  round( 41516.514479 ),
  41516.514479 + DATE '1899-12-30',           -- Здесь: 31.08.2013 
  floor( 41516.514479 ),
  floor( 41516.514479 ) + DATE '1899-12-30'   -- Здесь: 30.08.2013 
from rdb$database


Эта грабля, она жёстко прошита в SQL-стандарте ?

Или можно сделать, чтобы при добавлении float к date дробная часть не учитывалась?

Viewing all articles
Browse latest Browse all 1677

Trending Articles