Зміна формату дати mysql

завдання
Ви хочете змінити формат, в якому MySQL являє значення дат.

Рішення
Це неможливо. Однак ви можете при збереженні даних перетворити їх в потрібний формат, а при відображенні привести їх практично до будь-якого виду, використовуючи функцію DATE_FORMAT ().

Обговорення
Формат CCYY-MM-DD, який використовується MySQL для значень дат, відповідає стандарту ISO 8601 уявлення дат. Зручність цього формату в тому, що рік, місяць і день в ньому мають фіксовану довжину і з'являються в рядку дати зліва направо, так що дати природним чином упорядковано в правильному хронологічному порядку. Але формат ISO використовується не у всіх системах баз даних, що може викликати проблеми при переміщенні даних з однієї СУБД в іншу. Крім того, багато хто воліє інші формати дат, такі як MM / DD / YY або DD-MM-CCYY. Це може викликати проблеми, пов'язані з невідповідністю очікувань користувачів щодо формату зберігання дати і реального поведінки MySQL.

Новачки в MySQL часто задають питання: «Як вказати MySQL на необхідність зберігати дані в певному форматі, наприклад MM / DD / CCYY?» Відповіддю, на жаль, буде: «Ніяк».


MySQL завжди зберігає дати в форматі ISO, і наслідки цього факту зачіпають як введення даних, так і відображення результуючого безлічі:

• Для того щоб при введенні даних зберегти значення, що мають формат НЕ-ISO, слід спочатку перетворити їх. (Якщо ви не хочете цього робити, доведеться зберігати їх як рядки, наприклад в стовпці CHAR. Але тоді ви не зможете працювати з ними як з датами.) У деяких випадках, якщо формат значень близький до ISO, перетворення може і не знадобитися. Наприклад, візьмемо строкові значення 87-1-7 і 1987-1-7 і числа 870107 і 19870107. При завантаженні в стовпець DATE все вони інтерпретуються MySQL як дата 1987-01-07.

• Що стосується відображення даних, можна представляти дати не в форматі ISO, перетворивши їх. Допомогти в цьому може функція MySQL DATE_FORMAT (), що надає широкий вибір форматів виводу. Ви також можете використовувати такі функції, як YEAR (), для вилучення частин дат. Додаткова інформація про зміну формату виведення приведена в главі 10, де також представленнебольшой сценарій, який вивантажує вміст таблиці з переформатувати стовпцями дат.