2015-01-20 3 views
0

Я хочу создать таблицу учеников со столбцом «student_birthday», а ее формат должен быть dd-mm-yy.Создать таблицу с столбцом даты

create table `student`.`studentinfo`(
    `student_id` int(10) not null auto_increment, 
    `student_name` varchar(45) not null, 
    `student_surname` varchar(45) not null, 
    `student_birthday` date(???), 
    (some lines of code) 
primary key(student_id)); 

Что нужно ввести в (???), чтобы получить правильный формат выше?

ответ

1

Просто используйте «ДАТА» без кронштейнов. Скобки нужны только для определенных типов столбцов, где вы хотите указать максимальное количество байтов/символов, которые могут быть сохранены.

Для MySQL, это документировано в https://dev.mysql.com/doc/refman/5.6/en/date-and-time-types.html

+0

Он отлично работает. На самом деле, я прочитал документ выше, но примера нет. – realheaven

1

Тип данных date сам по себе является достаточным для представления значения даты. Формат будет иметь значение при отображении данных, для которых вы можете использовать функцию FORMAT в столбце date.

Следует добавить, что при вставке литератур времени даты имеется определенная гибкость в отношении формата, как задокументировано here.

+0

Yup. Это :) Некоторые типы данных могут иметь необязательные дополнительные атрибуты (например, 'UNSIGNED' для' INT', длина для 'VARCHAR' и т. Д.), Но' Date' является просто 'Date' :) – Eilidh

0

Следующий пример будет объяснить вашу проблему. Я использую MySQL 5.7.18.

Во-первых, я описал структуру пользователей таблицы, как я собираюсь создать таблицу сообщений с FOREIGN KEY.

Позже я создал сообщения таблицы и имеет ДАТЫ поле с именем созданного со многими другими столбцами.

Наконец я вставил 1 строку в только что созданную таблицу.

mysql> desc users; 
+-------------+-------------+------+-----+---------+-------+ 
| Field  | Type  | Null | Key | Default | Extra | 
+-------------+-------------+------+-----+---------+-------+ 
| id   | bigint(20) | NO | PRI | NULL |  | 
| fname  | varchar(50) | NO |  | NULL |  | 
| lname  | varchar(50) | NO |  | NULL |  | 
| uname  | varchar(20) | NO |  | NULL |  | 
| email  | text  | NO |  | NULL |  | 
| contact  | bigint(12) | NO |  | NULL |  | 
| profile_pic | text  | NO |  | NULL |  | 
+-------------+-------------+------+-----+---------+-------+ 
7 rows in set (0.00 sec) 

mysql> CREATE TABLE posts(id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, title text NOT NULL, description text NOT NULL, posted_by bigint, FOREIGN KEY(posted_by) REFERENCES users(id) ON DELETE CASCADE ON UPDATE RESTRICT , created DATE); 
Query OK, 0 rows affected (0.01 sec) 

mysql> desc posts;                                       
+-------------+------------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+-------------+------------+------+-----+---------+----------------+ 
| id   | bigint(20) | NO | PRI | NULL | auto_increment | 
| title  | text  | NO |  | NULL |    | 
| description | text  | NO |  | NULL |    | 
| posted_by | bigint(20) | YES | MUL | NULL |    | 
| created  | date  | YES |  | NULL |    | 
+-------------+------------+------+-----+---------+----------------+ 
5 rows in set (0.00 sec) 

mysql> INSERT INTO posts(title, description, posted_by, created) values("Getting started with MySQL", "Excellent Database system", 1, "2017-05-26"); 
Query OK, 1 row affected (0.00 sec) 

mysql> select * from posts; 
+----+----------------------------+---------------------------+-----------+------------+ 
| id | title      | description    | posted_by | created | 
+----+----------------------------+---------------------------+-----------+------------+ 
| 1 | Getting started with MySQL | Excellent Database system |   1 | 2017-05-26 | 
+----+----------------------------+---------------------------+-----------+------------+ 
1 row in set (0.00 sec) 

mysql> 
Смежные вопросы