Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Format daty MySQL – co musisz wiedzieć

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:

  1. Wartości lat między 00-69 są konwertowane na 2000-2069
  2. 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. #1139 – Otrzymano błąd „operand operatora powtórzeń nieprawidłowy” z wyrażenia regularnego

  2. Nielegalna mieszanka zestawień Błąd MySQL

  3. Jak wybrać każdy n-ty wiersz z mysql

  4. Znaczenie długości varchar w tabeli MySQL

  5. Napraw „BŁĄD 1222 (21000):Użyte instrukcje SELECT mają inną liczbę kolumn” podczas korzystania z UNION w MySQL