SQL-преобразование int в double
у меня есть два bit
введите столбцы в моей таблице sql, и значения в ней похожи,
FirstHalfLeave SecondHalfLeave
------------ -------------
0 1
1 1
мне нужно суммировать эти два поля, чтобы он ушел на один день, и мне нужно отключить точный результат(3/2=1.5)
Я только что преобразовал эти bit
to integer
как
sum(CAST(StaffAttendance.FirstHalfStatus as Integer) +
CAST(StaffAttendance.SecondHalfStatus as integer))/2 as TotalLeave
он показывает результат как 1
не 1.5
, для этого я думаю, что мне нужно бросить его, чтобы удвоить или плавать, я не знаю, как это сделать, может ли кто-нибудь помочь мне здесь, Спасибо заранее
5 ответов
использовать /2.0
вместо того, чтобы заставить decimal type
Edit:
чтобы удалить конечные нули, приведенные к float
. И я думаю, что вы сделали )
неправильно. Попробуйте:
select cast(
sum(
(
CAST(StaffAttendance.FirstHalfStatus as Integer) +
CAST(StaffAttendance.SecondHalfStatus as integer)
)
/ 2.0
) as float
) as TotalLeave
from your_table
самый простой способ преобразования в double умножается на 1.0 следующим образом:
1.0 * (sum(CAST(StaffAttendance.FirstHalfStatus as Integer) +
CAST(StaffAttendance.SecondHalfStatus as integer)))/2 as TotalLeave
вы пробовали бросать бит колонной и поплавки вместо ИНЦ?
sum(CAST(StaffAttendance.FirstHalfStatus as float) +
CAST(StaffAttendance.SecondHalfStatus as float))/2 as TotalLeave