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 приема само двуцифрени годишни стойности при следните условия:
- Стойностите на годината между 00-69 се преобразуват в 2000-2069
- Стойностите на годината между 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 форматите за дата, са били обхванати. Не забравяйте да дадете палец нагоре чрез секцията за коментари, ако намерите статията за полезна.