DATE and DATETIME

daty i godziny są bardzo frustrujące typy danych i SQL nie czyni ich łatwiejsze do pracy niż w innych językach. Podczas gdy Data i czas są w rzeczywistości zupełnie różnymi typami danych, często są one scalane w typ danych datetime. Same daty i godziny SQL są dość proste, mimo że wymagają specjalnego formatowania. Jednak połączenie tych dwóch może być jednym z najbardziej bolesnych zadań, z którymi będziesz musiał zmierzyć się we wczesnych latach. Dobrą zasadą jest, aby używać czasu i daty Tylko razem, gdy absolutnie trzeba lub będzie trzeba w przyszłości. Wyjaśnię, dlaczego daty i godziny komplikują sprawy w ciągu minuty. Po pierwsze, przyjrzyjmy się, jak łatwe życie, gdy po prostu pracować z dat.

praca z datami SQL

nasza tabela „użytkownicy”:

id username first last member_since
1 ohBillNotAgain Hillary Clinton 2011-12-25
2 internetCreator Al Gore 2011-12-8
3 dontMessWithTexas George Bush 2011-7-9

Let’s try to get all of our members before December 25, 2011.

przykład

SELECT *FROM UsersWHERE member_since < '2011-12-25'

wynik

id nazwa użytkownika pierwszy ostatni member_since
2 internetcreator al Gore 2011-12-8
3 dontmesswithtexas George Bush 2011-7-9

w porządku, powiedzieliśmy przed 25 grudnia 2011, co oznacza, że biedna Hillary nie jest uwzględniona, ponieważ jest w tym dniu. Al ledwo zdążył, ale Stary George był na długo przed naszą datą odcięcia. Powinniśmy porozmawiać o tym, co się stało. Do where member_since < '2011-12-25′, wiemy co robiliśmy. Możemy zgadnąć, co tu się dzieje, ale pokonam martwego konia. Sprawdzamy naszą kolumnę member_since, aby sprawdzić, czy jest ona mniejsza niż<, nasza data, która została zapisana w pojedynczych cudzysłowach jako '2011-12-25′. Często podczas googlowania o pomoc z datami, widzisz tę składnię określaną jako’ RRRR-MM-DD’, gdzie Y oznacza rok, M oznacza miesiąc, A D oznacza dzień, oczywiście. Każde powtórzenie jest symbolem pustej przestrzeni znaków dla tego elementu. Więc chcesz tylko 2 cyfry na miesiąc, bo to ma sens, a może nie obchodzi cię pierwsze 2 znaki roku. Zamiast tego po prostu napisz, YY, aby uzyskać 11. Łatwo, na wspaniałe DATETIMEs

używając DATETIME w SQL

nasza nowa tabela „użytkownicy”:

id username first last last_login
1 ohBillNotAgain Hillary Clinton 2011-12-24 12:59:15
2 internetCreator Al Gore 2011-12-24 11:53:25
3 dontMessWithTexas George Bush 2011-12-24 16:24:17

teraz staramy się uzyskać wszystkich naszych członków, którzy zalogowali się przed 13:00 24 grudnia 2011.

przykład

SELECT * FROM UsersWHERE last_login < '2011-12-24 13:00:00'

wynik

id nazwa użytkownika pierwszy ostatni last_login
1 ohbillnotagain Hillary Clinton 2011-12-24 12:59:15
2 internetcreator 2011-12-24 11:53:25

biedny George… w porządku, dokładnie taka sama składnia jak ostatnia z wyjątkiem, że zastąpiliśmy nazwę kolumny i użyliśmy ciągu DATETIME do porównania. Typ danych DATETIME zawiera wszystkie te same elementy co typ danych DATE plus łańcuch czasowy. Często określany jako’ YYYY-MM-DD HH:MM:SS ’ ponownie, w pojedynczych cytatach i ze spacją oddzielającą łańcuch daty od łańcucha czasu, tworzymy łańcuch daty dla porównania. Hillary i Al robią cięcie, bo zalogowali się przed ’ 2011-12-24 13: 00:00 ’ odciąć DATETIME. Tutaj jest o wiele łatwiej niż wygląda w praktyce. To dlatego, że ręcznie wkładamy łańcuch DATETIME. SQL ma kilka funkcji daty, z którymi możesz się bawić, które możesz zastąpić naszym ciągiem znaków:

ważne funkcje daty SQL

Uwaga: funkcje daty SQL różnią się znacznie w różnych wersjach SQL. To są MySQL.

  • CURDATE() – pobiera bieżącą datę
  • CURTIME() – Pobiera bieżący czas
  • NOW() – pobiera zarówno datę, jak i czas (w formacie DATETIME)

Jeśli nie używasz MySQL, rozważ przełączenie. Żartuję, ale bez obaw, proste zapytanie Google pomoże Ci znaleźć odpowiednie funkcje SQL dla twojej bazy danych SQL.

Dodaj komentarz

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