Дата и час в MySQL: формат на датата, сортиране и локализация

Естественото представяне на времето е датата: година, месец, ден и час: часове, минути на секунда. Някои приложения имат дни от седмицата и част от секундата, но във всички приложения са необходими инструменти за обработка на времеви променливи и тяхното представяне по естествен начин.

Времето се характеризира с място в пространството, където се случва събитието, и мястото, където може да се използва. Това е обща процедура, която определя необходимостта от локализация и отчитане на часови зони.

MySQL: Типове данни за записване на времето

Формално, видовете данни в системата за управление на бази данни на MySQL са пет дескриптора (дата, час, време и време). Разработчикът често предпочита универсален вариант: char
  • - когато има обективна причина да се използва неговата интерпретация на функцията MySQL date_format () или да се осигурят необходимите условия за правилното сортиране.



    В този пример се формира таблица с опции за представяне на датите и в нея се въвеждат две линии. Първият ред съдържа данни в естествен формат и в полетата за попълване няма поле "x_timestamp". Вторият ред във всички полета използва функцията MySQL now (). Трябва да се отбележи, че посоченото поле се попълва и в двата случая.

    Етикет на времето и неговия формат

    Този тип времево поле (timestamp) и използването на функцията MySQL date_format () са изключително ефективни за създаване на времеви отпечатъци. Това "няма никаква връзка" с всеки алгоритъм. Тя не изисква специално проучване при представянето на датата или часа. Това е само временен етикет - точка на линията на развитие.


    Този тип поле се попълва, когато линията е създадена. Няма нужда да обръщате внимание на това, но винаги и във всяка заявка, на която можете да разчитате: MySQL date_format () datetime = време, когато линията е създадена. Важно е, разбира се, никога да не го променяте. Линията е създадена и времето за нейното създаване се определя само веднъж. Не можете да го редактирате. Това решение има много области на приложение:
  • протокол за диалог с посетителя;
  • Журнал за сигурност на журнал;
  • проследяване на действията на служителите;
  • календар на събитията;
  • пощенска кутия и др.
  • Времето е преди всичко поредица от събития. Всичко, което е свързано с уеб ресурс, който се стреми към съвършенство, класиране и рефлексия в реалния живот, е един или друг начин свързан с правилното отразяване на времето:
  • както е, то не е видимо за потребителя, но на разположение на предприемача;
  • тъй като тя трябва да бъде отразена в уеб ресурса, използван в алгоритъма, взета предвид в документа и др.
  • Времето е многостранно и зависи от точката на пространството, където се е състояло събитието в контекста на това мястото, където трябва да се използва или отразява.

    Общ смисъл на MySQL select date_format ()

    Заявката за извадка за информация е основната фраза на езика на SQL. Това е така в търсенето, което е много важно при формирането на желаната проба възможно най-бързо да преобразува съдържанието му в правилна форма, без да се натоварва алгоритъма с допълнителни конструкции.
    От тази гледна точка MySQl date_format () ви позволява да изпълнявате всяка стойност на датата и времето във формата, в който е необходимов момента на искането. Таблицата показва две линии и има две еднакви полета: "x_timestamp" и "x_datetime". Заявката се отнася за тези две полета, но посочва техните имена, минаващи през PHP, директно в датата MySQL формат.
    Форматиращият низ може да бъде всеки. Съдържанието на форматния низ се предава на резултата от заявката във формат "както е" с подмяна на ключовите елементи във формат "% *", където символът звездичка означава символ за формат: година, месец, ден и час.

    Национален формат за време и сортиране

    Използването на дата в стандарт MySQL е най-доброто решение за използване на функционалността на езика SQL. Няма проблеми с сортирането, нито с изчисленията, нито с форматирането в MySQL стил date_format (). Но не всички страни имат работна седмица, започваща в неделя, не винаги се смята за нормално представяне на времето в 12-часов формат, а на всички езици има понятие "AM" и "PM". Има много такива национални особености, но по-голямата част от тях са извън функциите на езика SQL.
    Съмнително е, че като цяло съществува такъв диалект на SQL, който може да се разширява за сметка на националния цвят на страните извън границите на термина "локализация". Всъщност не е изненадващо, че "локализацията" на практика означава повече авто-подмяна на някои думи (комбинации) към други в зависимост от езика. Но не винаги националният език определя всичко, на първо място, то по никакъв начин не е свързано с правилното представяне на времето.

    Ключ за събития и ключ за данни

    Времето никога не се връща, следователно, това е идеалният ключ за всяка линия, за всяка таблица, за всяка база данни. Две събития могат да се появят едновременно, ако интервалът им епроследяване на повече от времевата разлика между външния им вид. Например двама потребители са влезли в сайта по едно и също време, но в различни секунди от тази минута.
    PHP има интересно решение: има обект и е инстанция на обекта. Има идея за статична променлива:
  • частен статичен $ iUniqueNo = -1; //"UU" винаги е уникален номер
  • //при всяко извикване на тази функция, $ iUniqueNo ще бъде различно и
  • //никога няма да се повтори в рамките на една секунда.
  • публична функция IncUniqueNo () {
  • , ако (self: $ iUniqueNo> 99)
  • self :: $ iUniqueNo = 0;
  • друго
  • self :: $ iUniqueNo ++;
  • }
  • Не твърде фантазирам, сливайки се в едно цяло: година, месец, ден, час, минута, секунда и $ iUniqueNo, получаваме: YYYYMMDDchchmssUU - уникален ключ ("UU" = "$ iUniqueNo") за записване и едновременно с това време за всяка употреба. Това е идеално решение в контекста на типа време на базата данни и функцията MySQL date_format (), което прави едновременно времето и времето едновременно.

    Свързани публикации