Praca z datą i czasem w MS SQL

Podczas pracy z MS SQL często napotyka się problemy ze zmiennymi typu: date, datetime, smalldatetime, time.

Wynika to z faktu, że w różnych środowiskach możemy mieć ustawione inne formaty daty.

Inny problem to również to, jak pozbyć się np. minut i sekund z datetime lub jak skonwertować wartość na inny typ danych.

Oto kilka przykładów:

W powyższych przykładach polecenie CONVERT pozwala na określenie stylu konwersji daty 120, czyli yyyy-mm-dd hh:mi:ss (24h).

Innym sposobem by pozbawić daty godziny jest konwersja na string.

 

 

1. Praca z datą i czasem w MS SQL – Użycie funkcji DATEPART

Funkcja DATEPART pozwala na wydobycie fragmentu daty, takiej jak np. rok, miesiąc czy dzień itd.

 

 

2. Praca z datą i czasem w MS SQL – Zmiana daty na liczbę (integer, float)

Czasami konieczna może być możliwość zamiany daty na liczbę, np. gdy chcemy ją eksportować lub program ma problem z rozumieniem daty.

 

 

Pierwszy przykład za pomocą mnożenia i funkcji zmienia datę na typ integer.
W połączeniu z funkcją floor typ flout pozwala nam na pozbycie się minut i sekund.

 

 

3. Praca z datą i czasem w MS SQL – Odejmowanie i dodawanie dat

Do odejmowania dat używamy funkcji dateadd. By dodać wartość do daty podajemy dla funkcji wartość dodatnią by odjąć ujemną.

 

Celem odjęcia daty od daty, używamy funkcji datediff. Syntax: DATEDIFF(interwał, początek, koniec)

 

 

4. Praca z datą i czasem w MS SQL – inny format daty

Tworząc raport np. w tabeli przestawnej, przydaje się niewystępujący w MS SQL format daty rrrrmm, a jest on niezbędny, gdy chcemy zaprezentować dane z kilku lat po miesiącach. Rozwiązanie:

Dla formatu yyyymm oraz yyyy-mm

 

 

5. Praca z datą i czasem w MS SQL – ustawianie formatu daty (SET DATEFORMAT)

Poniżej przykład jak przy użyciu funkcji SET DATEFORMAT ustawić format daty dla zmiennych w MS SQL.

 

EDIT:

 

 

 

Podziel się:

1 komentarz

    • Krissus, 04/08/2017, 21:41

    Odpowiedz

    Bardzo ciekawy i pomocny artykuł. Warto dodać od kiedy zmienna datetime2 pojawila się w mssql.

    Wiktor oby tak dalej. Dobra robota.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.