Czy istnieje możliwość bezpośredniego odejmowania dat - tak, jak w przypadku liczb bezwzględnych - w języku SQL?
z poprzednich tematów kojarze MS SQL Server. Zatem poczytaj https://www.sqlpedia.pl/tag/funkcje-daty-i-czasu/
Generalnie chodzi Ci o DATEADD()
W MS SQL do odejmowania od siebie dwóch dat i wyciągania tego co chcesz to najlepsze jest chyba DATEDIFF
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.
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);
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.