Odejmowanie dat

0

Czy istnieje możliwość bezpośredniego odejmowania dat - tak, jak w przypadku liczb bezwzględnych - w języku SQL?

0

z poprzednich tematów kojarze MS SQL Server. Zatem poczytaj https://www.sqlpedia.pl/tag/funkcje-daty-i-czasu/

Generalnie chodzi Ci o DATEADD()

0

W MS SQL do odejmowania od siebie dwóch dat i wyciągania tego co chcesz to najlepsze jest chyba DATEDIFF

0
Piotrek Nero napisał(a):

W MS SQL do odejmowania od siebie dwóch dat i wyciągania tego co chcesz to najlepsze jest chyba DATEDIFF

DATEDIFF służy do wyliczania różnicy czasu pomiędzy datami. Do odejmowania czy dodawania okresów czasu do dat służy DATEADD. Autorowi wątku chyba rzeczywiście chodziło o to pierwsze, choć nie mam pewności.

0

TSQL

DECLARE @now_date DATETIME;
DECLARE @date DATETIME;
DECLARE @diff BIGINT;

SET @now_date = GETDATE();

SELECT @date = DATEADD( YEAR , -1,  DATEADD(  MONTH ,  -1, DATEADD( DAY , -1, DATEADD( HOUR , -1, DATEADD( MINUTE , -1, DATEADD(SECOND, -1, @now_date))))));

SET @diff = DATEDIFF(SECOND, @date, @now_date);

SELECT @now_date,@date,@diff [diff in sec];

SELECT CONVERT(VARCHAR, @now_date, 121) + ' - ' + CAST(@diff AS VARCHAR(255)) + ' sec = ' + CONVERT(VARCHAR, DATEADD(SECOND, -@diff, @now_date), 121);




1 użytkowników online, w tym zalogowanych: 0, gości: 1