MySQL wywodzi się z „My” – córki współzałożyciela i SQL- Structured Query Language. Jest to system zarządzania relacyjnymi bazami danych typu open source. Ten system relacyjnych baz danych pomaga organizować dane w powiązanych tabelach, umożliwiając w ten sposób strukturalne relacje różnych zestawów danych.
Data MySQL to jeden z tymczasowych typów danych, który może zarządzać wartościami danych wraz z innymi typami danych, takimi jak typy danych liczbowych, typy danych String, typy danych Boolean, data i godzina oraz typy danych przestrzennych.
Funkcja DATE_FORMAT() jest używana w MySQL do formatowania daty przy użyciu określonej wartości formatu. Na przykład, jeśli podano datę, funkcja sformatuje ją zgodnie z określonymi parametrami.
Składnia formatu daty MySQL
DATE_FORMAT(date, format)
Powyższa funkcja składni akceptuje dwa parametry, jak pokazano poniżej:
- data – określa datę do sformatowania
- format – określa format, który ma być używany do formatowania daty
Poniżej znajduje się lista formatów, z którymi powinieneś się zapoznać, mając do czynienia z funkcją daty.
- %a – ten format wyświetla nazwę dnia tygodnia. jest ograniczony od niedzieli do soboty.
- %b – ten symbol formatu pokazuje nazwę miesiąca. jest ograniczony od stycznia do grudnia.
- %c – ten symbol formatu wskazuje numerycznie nazwę miesiąca. jest ograniczona od 0 do 12
- %D – ten symbol formatu pokazuje wartość liczbową dnia miesiąca, po której następuje przyrostek, taki jak 1. lub 2.
- %e – ten symbol formatu pokazuje wartość liczbową dnia miesiąca. jest ograniczona od 0 do 31
- %f – ten symbol formatu pokazuje mikrosekundy. jest ograniczony od 000000 do 999999.
- %H – ten symbol formatu oznacza godzinę. Jest ograniczona od 00 do 23.
- %i – ten symbol formatu pokazuje minuty. jest ograniczona od 00 do 59.
- %j – ten symbol formatu pokazuje dzień roku. jest ograniczona od 001 do 366.
- %M – ten symbol formatu wskazuje nazwę miesiąca. jest ograniczona od stycznia do grudnia
- %p – ten symbol formatu pokazuje PM lub AM
- %S – ten symbol formatu pokazuje sekundy. jest ograniczona od 00 do 59
- %U – ten symbol formatu pokazuje dni tygodnia, w których niedziela jest pierwszym dniem. Jest ograniczona od 00 do 53.
- %W – ten symbol formatu pokazuje dni tygodnia od niedzieli do soboty
- %Y – ten symbol formatu pokazuje wartość liczbową roku jako 4-cyfrową liczbę
Wymienione powyżej formaty zwracają sformatowaną datę.
Przykład 1:
Aby wyodrębnić lub wyświetlić rok od bieżącej daty, wykonaj następujące polecenie:
SELECT DATE_FORMAT("2021-09-25", "%Y");
Wyjście:
Przykład 2:
Wyodrębnij nazwę miesiąca z podanej daty, jak pokazano poniżej:
2021-09-25
SELECT DATE_FORMAT("2021-09-25", "%M");
Wyjście:
Przykład 3:
Wyodrębnij godziny i minuty od daty podanej poniżej:
2021-09-25
SELECT DATE_FORMAT("2021-09-25 10:20:23", "%H %i");
Wyjście:
Przykład 4:
Wyodrębnij dzień miesiąca numerycznie od daty określonej poniżej:
2021-09-25
SELECT DATE_FORMAT("2021-09-25", "%D");
Wyjście:
Przykład 5:
Wyodrębnij odpowiednio miesiąc, dzień i rok z podanej tutaj daty:
2021-09-25
SELECT DATE_FORMAT("2021-09-25", "%M %d %Y");
Wyjście:
Data MySQL używa formatu; rrrr-mm-dd do przechowywania wartości danych, a ten format jest zwykle ustalany bez pozwolenia na jego zmianę. Ze względu na wymagania MySQL dotyczące przechowywania, aby przechowywać pojedynczą wartość daty, potrzeba około 3 bajtów i ma wartość daty z zakresu od 1000-01-01 do 9999-12-31. Dlatego użytkownik, który musi przechowywać zakres dat poza tymi parametrami, jest możliwy tylko za pomocą liczb całkowitych. Jednak ten proces jest dość trudny i wymagałby utworzenia trzech kolumn, jednej dla roku, drugiej dla miesiąca i ostatniej dla dnia.
Często nie zaleca się próbowania tego w większości przypadków, jeśli chcesz zmienić format daty. Wyłączenie „trybu ścisłego” pomoże przekonwertować każdą nieprawidłową datę na „wartość daty zerowej”. Nieprawidłowa data w tym przypadku nie byłaby zgodna ze standardowym formatem daty MySQL, na przykład 2020-01-24. Stworzyłoby to również potrzebę opracowania „funkcji przechowywanych”, które odtwarzałyby nowo utworzone funkcje daty MySQL.
Wartości dat MySQL z 2-cyfrowymi latami
MySQL akceptuje tylko dwucyfrowe wartości roku pod następującymi warunkami:
- Wartości lat między 00-69 są konwertowane na 2000-2069
- Wartości lat z zakresu 70-79 są przeliczane na lata 1970-1999
Zaleca się jednak unikanie używania dwucyfrowych wartości dat, ponieważ jest to niejednoznaczne.
Oto przykład. Tabela jest tworzona z nazwą „ludzie” i zawiera kolumny „typy danych”:
CREATE TABLE IF NOT EXISTS people ( JOB_ID integer NOT NULL UNIQUE PRIMARY KEY, JOB_TITLE varchar(35) NOT NULL DEFAULT ' ', MIN_SALARY decimal(6,0) DEFAULT 8000, MAX_SALARY decimal(6,0) DEFAULT NULL )ENGINE=InnoDB;
Poniższa funkcja „wstawi wiersz” do tabeli „ludzie”:
INSERT INTO people(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
VALUES('5', 'Foss', '2000', '2000');
Teraz „Zapytaj o dane” z tabeli „Ludzie”
SELECT * FROM people;
Po uruchomieniu powyższych poleceń będzie można teraz użyć opcji formatu 2-cyfrowego roku do wstawiania danych do tabeli „ludzie”:
INSERT INTO people(JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY,BIRTH)
VALUES('6', 'FOSSLINUX', '200', '2000', '01-09-01');
„01” zostało użyte w pierwszym rzędzie jako rok, mieszczący się w przedziale (zakres 00-69). MySQL przekonwertuje go na 2001, podczas gdy w drugim wierszu użycie „84” mieści się w zakresie (70-99), a MySQL przekonwertuje go na 1984.
Funkcje daty MySQL
MySQL często udostępnia i wykorzystuje kilka funkcji daty, co pomaga użytkownikom efektywniej i szybciej manipulować danymi.
Na przykład użycie funkcji „TERAZ( )” pomaga pobrać bieżącą datę i godzinę:
SELECT NOW( );
Aby uzyskać tylko część daty z „DATETIME”, użyj tylko funkcji „DATE( )”:
SELECT DATE(NOW( ) );
Aby uzyskać aktualną datę systemową, użyj CURDATE ( ):
SELECT CURDATE();
Funkcji „DATE_FORMAT” można użyć do sformatowania wartości daty do tego formatu; mm/dd/rrrr. Używa wzorca formatu daty %m/%d/%Y
SELECT DATE_FORMAT('2021-09-25 22:23:00', '%W %D %M %Y');
Jeśli chcesz obliczyć liczbę dni między dwiema wartościami dat, użyj funkcji „DATEDIFF”:
mysql> SELECT DATEDIFF('2020-09-25', '2021-09-25') days;
Korzystanie z funkcji „DATE_ADD” pomaga dodać kilka lat, miesięcy, tygodni lub dni:
SELECT DATE_ADD('2021-09-25', INTERVAL 31 DAY);
Funkcji „DATE_SUB” można również użyć do odjęcia przedziału dat:
SELECT DATE_SUB("2021-09-25", INTERVAL 10 DAY);
Użycie odpowiedniej funkcji w zakresie daty, miesiąca, kwartału i roku pomoże Ci uzyskać dokładny dzień, miesiąc itp. dla wartości daty, jak pokazano poniżej:
SELECT DAY(‘2000-12-31’) day,
MONTH( ‘2000-12-31’) month
QUARTER(‘2000-12-31’) quarter,
YEAR(‘2000-12-31’) year
Day ǀ month ǀ quarter ǀ year ǀ
31 ǀ 12 ǀ 4 ǀ 2000ǀ
Cotygodniowe informacje o powiązanych funkcjach są dostępne poprzez:
SELECT
WEEKDAY(‘2000-12-31’) weekday,
WEEK( ‘2000-12-31’) week,
WEEKOFTHEYEAR(‘2000-12-31’) weekofyear;
weekday ǀ week ǀ weekofyear ǀ
6 ǀ 53 ǀ 52 ǀ
Funkcja week zawsze zwraca numer tygodnia mający indeks liczony od zera. Będziesz musiał przekazać drugi argument lub przekazać „0”, aby temu zapobiec. Przekazanie „1” zwróci numer tygodnia „1-indeksowany”.
WEEKDAY(‘2000-12-31’) weekday,
WEEK( ‘2000-12-31’, 1) week,
WEEKOFTHEYEAR(‘2000-12-31’) weekofyear;
weekday ǀ week ǀ weekofyear ǀ
6 ǀ 52 ǀ 52 ǀ
Wniosek
To jest krótki samouczek dotyczący artykułu, który obejmuje temat formatu daty MySQL. Mamy nadzieję, że wszystkie aspekty, z którymi chciałeś się zapoznać w formatach dat MySQL, zostały omówione. Pamiętaj, aby dać kciuk w górę w sekcji komentarzy, jeśli artykuł okaże się pomocny.