Operatory arytmetyczne w SQL Server

Działania arytmetyczne w MsSQL

Do wykonywania działań arytmetycznych w SQL Server wykorzystujemy standardowe operatory dodawania, odejmowania, mnożenia, dzielenia i reszty z dzielenia:  

OperatorOpis
Dodawanie+
Odejmowanie
Mnożenie*
Dzielenie/
Reszta z dzielenia%

Poza operatorami arytmetycznymi wykorzystujemy także standardowe nawiasy (). Operatory możesz łączyćze sobą. Co ważne, jeśli wykonujesz operację dzielenia na liczbach całkowitych, którego wynikiem nie będzie liczba całkowita, powinieneś najpierw zmienić format liczb w działaniu na dowolny typ przecinkowy.

use AdventureWorks;
go
select
(234+345) / 415 as RESULT1,
(234.0+345.0) / 415.0 as RESULT2, --działanie na liczbach całkowitych
((34434.0-3412.0) / 535.0)*(158.0+6.0) as RESULT3, --powyższe działanie na liczbach zmiennoprzecinkowych FLOAT
99 % 11 as RESULT4 --modulo -reszta z dzielenia 
from HumanResources.EmployeePayHistory;
;
GO
Kurs MsSQL – Operatory arytmetyczne w SQl Server

Zauważ, że w powyżej opisanym przykładzie, by podzielić przez siebie dwie liczby całkowite użyte zostało zero po kropce (np 6.0). Dzięki temu aparat bazy danych zwróci wynik dzielenia jako liczbę z ułamkiem dziesiętnym. W innym wypadku wynikiem będzie liczba całkowita.

Działania arytmetyczne na datach w SQL Server

Operatory + i – mogą być także wykorzystywane do dodawania i odejmowania dat o typach datetime i smalldatetime. Po odjęciu dat konwertujemy je na format liczbowy. Poniżej kilka przykładowych działań z wykorzystaniem operatorów. Dla wyjaśnienia funkcja getdate() zwraca bieżącą datę i godzinę w MsSQL.

use AdventureWorks;
go
select
getdate() -1
;
GO

lub coś bardziej zaawansowanego:

use AdventureWorks;
go
select
CONVERT(INT, (GETDATE()) - RateChangeDate) as RESULT5
from HumanResources.EmployeePayHistory;
;
GO

Jeśli trafiłeś na ten temat przypadkiem, zapraszam do skorzystania z kursu SQL Server

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Komentarz do “Operatory arytmetyczne w SQL Server”