Mysql
 sql >> база данни >  >> RDS >> Mysql

Формат на датата на MySQL – това, което трябва да знаете

MySQL произлиза от „My“ – дъщерята на съоснователя и SQL – Structured Query Language. Това е система за управление на релационни бази данни с отворен код. Тази система за релационна база данни помага да се организират данните в свързани таблици, като по този начин позволява структурни връзки на различни набори от данни.

MySQL дата е един от темпоралните типове данни, които могат да управляват стойности на данни наред с други типове данни, като числови типове данни, низови типове данни, булеви типове данни, дата и час и типове пространствени данни.

Функцията DATE_FORMAT() се използва в MySQL за форматиране на дата с помощта на посочената стойност за формат. Например, ако е предоставена дата, функцията ще я форматира за посочените параметри.

Синтаксис за формат на датата на MySQL

DATE_FORMAT(дата, формат)

Синтаксичната функция по-горе приема два параметъра, както е показано по-долу:

  • дата – Посочва датата, която да бъде форматирана
  • формат – Определя формата, който да се използва за форматиране на датата

По-долу е даден списък с формати, с които трябва да се запознаете, когато работите с функцията за дата.

  • %a – този формат показва името на деня от седмицата. е ограничен от неделя до събота.
  • %b – този символ за формат показва името на месеца. той е ограничен от януари до декември.
  • %c – този символ за формат показва числовото име на месеца. той е ограничен от 0 до 12
  • %D – този символ за формат показва числовата стойност на деня от месеца, последван от суфикс като 1-во или 2-ро.
  • %e – този символ за формат показва числовата стойност на деня от месеца. той е ограничен от 0 до 31
  • %f – този символ за формат показва микросекунди. той е ограничен от 000000 до 999999.
  • %H – този символ за формат показва часа. Ограничено е от 00 до 23.
  • %i – този символ за формат показва минутите. той е ограничен от 00 до 59.
  • %j – този символ за формат показва деня от годината. той е ограничен от 001 до 366.
  • %M – този символ за формат показва името на месеца. тя е ограничена от януари до декември
  • %p – този символ за формат показва PM или AM
  • %S – този символ за формат показва секунди. той е ограничен от 00 до 59
  • %U – този символ за формат показва дните от седмицата, където неделя е първият ден. Ограничено е от 00 до 53.
  • %W – този символ за формат показва делничните дни от неделя до събота
  • %Y – този символ за формат показва числовата стойност на годината като 4-цифрено число

Изброените по-горе формати връщат форматирана дата.

Пример 1: 

За да извлечем или покажем годината от текущата дата, ще изпълним следния команден ред:

ИЗБЕРЕТЕ DATE_FORMAT("2021-09-25", "%Y");
Изход:
Пример 2:

Извлечете  името на месеца от дадена дата, както е показано по-долу:

25.09.2021

ИЗБЕРЕТЕ DATE_FORMAT("2021-09-25", "%M");
Изход:
Пример 3:

Извлечете часове и минути от посочената по-долу дата:

25.09.2021

SELECT DATE_FORMAT("2021-09-25 10:20:23", "%H %i");
Изход:
Пример 4: 

Извлечете числото деня от месеца от датата, посочена по-долу:

25.09.2021

ИЗБЕРЕТЕ DATE_FORMAT("2021-09-25", "%D");
Изход:
Пример 5:

Извлечете съответно месеца, деня и годината от датата, посочена тук:

25.09.2021

ИЗБЕРЕТЕ DATE_FORMAT("2021-09-25", "%M %d %Y");
Изход:

MySQL дата използва формата; гггг-мм-дд за съхраняване на стойност на данни и този формат обикновено е фиксиран без разрешение за промяната му. За изискванията за съхранение на MySQL, за да съхрани една стойност на датата, той ще използва около 3 байта и има стойност за дата, варираща от 1000-01-01 до 9999-12-31. Следователно, потребител, който трябва да съхрани период от време извън тези параметри, е възможен само чрез цели числа. Този процес обаче е доста облагане и ще изисква да създадете три колони, една за годината, друга за месеца и последната за деня.

Това често не се препоръчва да се опитвате в повечето случаи, ако искате да промените формата на датата. Деактивирането на „строгия режим“ ще помогне да се преобразува всяка невалидна дата в „стойност на нулевата дата“. Невалидна дата в този случай няма да следва стандартния формат на датата на MySQL, например 2020-01-24. Това също би създало необходимост от разработване на „съхранени функции“, които да възпроизвеждат новосъздадените функции за дата на MySQL.

Стойности за дата на MySQL с 2-цифрени години

MySQL приема само двуцифрени годишни стойности при следните условия:

  1. Стойностите на годината между 00-69 се преобразуват в 2000-2069
  2. Стойностите на годината между 70-79 се преобразуват в 1970-1999 г.

Въпреки това е препоръчително да избягвате използването на стойности за дата с две цифри, тъй като това е двусмислено.
Ето един пример. Създава се таблица с името „хора“ и има  колони „типове данни“:

СЪЗДАДЕТЕ ТАБЛИЦА, АКО НЕ СЪЩЕСТВУВА хора ( JOB_ID цяло число НЕ NULL УНИКАЛЕН ПРАВИЛЕН КЛЮЧ, JOB_TITLE varchar(35) NOT NULL DEFAULT ' ', MIN_SALARY decimal(6,0) DEFAULT 8000, MAX_SALARY0 DECImal(DECIAL(35) =InnoDB;

Следната функция ще „вмъкне ред“ в таблицата „хора“:

ВЪВЕТЕ ВЪВ хора(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
СТОЙНОСТИ('5', 'Foss', '2000', '2000');

Сега „Потърсете данните“ от таблицата „хора“

ИЗБЕРЕТЕ * ОТ хора;

След като изпълните командите по-горе, вече ще е възможно да използвате опцията за формат на 2-цифрена година за вмъкване на данни в таблицата „хора“:

ВМЪКНЕТЕ В хора(JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY,РОЖДАНЕ)
VALUES('6', 'FOSSLINUX', '200', '2000', '01-09-01');

„01“ е използван в първия ред като година, попадайки между (диапазон 00-69). След това MySQL ще го преобразува в 2001, докато във втория ред използването на „84“ попада в диапазона (70-99), а MySQL го преобразува в 1984.

Функции за дата на MySQL

MySQL често предоставя и използва няколко функции за дата, което помага на потребителите да манипулират своите данни по-ефективно и бързо.
Например, използването на функцията „СЕГА( )“ помага за извличане на текущата дата и час:

ИЗБЕРЕТЕ СЕГА( );

За да получите само частта от датата на „DATETIME“, използвайте само функцията „DATE( )“:

ИЗБЕРЕТЕ ДАТА(СЕГА( ) );

За да получите текущата системна дата, използвайте CURDATE ( ):

ИЗБЕРЕТЕ CURDATE();

Функцията „DATE_FORMAT“ може да се използва за форматиране на стойността на датата в този формат; мм/дд/гггг. Той използва шаблона за формат на датата от %m/%d/%Y

ИЗБЕРЕТЕ DATE_FORMAT('2021-09-25 22:23:00', '%W %D %M %Y');

Ако искате да изчислите броя на дните между две стойности на датата, използвайте функцията „DATEDIFF“:

mysql> SELECT DATEDIFF('2020-09-25', '2021-09-25') дни;

Използването на функцията „DATE_ADD“ помага да се добавят няколко години, месеци, седмици или дни:

ИЗБЕРЕТЕ DATE_ADD('2021-09-25', ИНТЕРВАЛ 31 ДЕН);

Функцията „DATE_SUB“ може също да се използва за изваждане на интервал от дата:

ИЗБЕРЕТЕ ДАТА_SUB("2021-09-25", ИНТЕРВАЛ 10 ДНИ);

Използването на съответната функция по отношение на дата, месец, тримесечие и година ще ви помогне да получите точния ден, месец и т.н. за стойност на датата, както е показано по-долу:

SELECT DAY('2000-12-31') ден,
MONTH('2000-12-31') месец
QUARTER('2000-12-31') тримесечие,
ГОДИНА('2000-12-31') година

Ден ǀ месец ǀ тримесечие ǀ година ǀ
31 ǀ 12 ǀ 4 ǀ 2000ǀ

Седмичната информация за свързани функции може да бъде достъпна чрез:

SELECT
WEEKDAY('2000-12-31') делничен ден,
WEEK('2000-12-31') седмица,
WEEKOFTHEYEAR('2000-12-31') седмица от годината;

делен ден ǀ седмица ǀ седмица от годината ǀ
6 ǀ 53 ǀ 52 ǀ

Функцията за седмица винаги връща номер на седмицата с индекс на база нула. Ще трябва да подадете втори аргумент или „0“, за да предотвратите това. Предаването на „1“ ще върне номера на седмицата „1-индексирано“.

WEEKDAY('2000-12-31') делничен ден,
WEEK('2000-12-31', 1) седмица,
WEEKOFTHEYEAR('2000-12-31') седмица от годината;

делен ден ǀ седмица ǀ седмица от годината ǀ
6 ǀ 52 ǀ 52 ǀ

Заключение

Това е кратък урок за статия, който обхваща тематичния формат на датата на MySQL. Надяваме се, че всички аспекти, с които искате да се запознаете с MySQL форматите за дата, са били обхванати. Не забравяйте да дадете палец нагоре чрез секцията за коментари, ако намерите статията за полезна.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да покажа съпоставянето на таблица в MySQL

  2. Какъв е еквивалентът на SQL Server на ELT() в MySQL?

  3. Използване на MySQL заявка за преминаване на редове за създаване на рекурсивно дърво

  4. Как да получите броя на всяка отделна стойност в колона?

  5. Как да наблюдавате метриките на HAProxy с ClusterControl