Как вводить дату в sql через insert
Перейти к содержимому

Как вводить дату в sql через insert

  • автор:

Как вводить дату в sql через insert

Для работы с датой и временем в MySQL есть несколько типов данных: DATE , TIME , DATETIME и TIMESTAMP .

Тип Описание Диапазон значений Размер
DATE Хранит значения даты в виде ГГГГ-ММ-ДД.
Например, 2022-12-05
от 1000-01-01 до 9999-12-31 3 байта
TIME Хранит значения времени в формате ЧЧ:ММ:СС. (или в формате ЧЧЧ:ММ:СС для значений с большим количеством часов).
Например, 800:50:50
от -838:59:59 до 838:59:59 3 байта
DATETIME Хранит значение даты и времени в виде ГГГГ-MM-ДД ЧЧ:ММ:СС.
Например, 2022-12-05 10:37:22
от 1000-01-01 00:00:00 до 9999-12-31 23:59:59 8 байта
TIMESTAMP Хранит значение даты и времени в виде ГГГГ-MM-ДД ЧЧ:ММ:СС.
Например, 2022-12-05 10:37:22
от 1970-01-01 00:00:01 до 2038-01-19 03:14:07 4 байта

Типы данных DATETIME и TIMESTAMP в MySQL похожи друг на друга, так как оба направлены на хранение даты и времени. Но между ними есть ряд существенных отличий, определяющих какой из этих типов данных когда лучше использовать.

Хранит значения в диапазоне от 1000-01-01 00:00:00 до 9999-12-31 23:59:59 и при этом занимает 8 байт. Этот тип данных не зависит от временной зоны, установленной в MySQL. Он всегда отображается ровно в таком виде, в котором был установлен и в котором хранится в базе данных. То есть при изменении часового пояса, отображение времени не изменится.

MySQL
CREATE TABLE datetime_table (datetime_field DATETIME); SET @@session.time_zone="+00:00"; -- сбрасываем часовой пояс в MYSQL INSERT INTO datetime_table VALUES("2022-06-16 16:37:23"); SET @@session.time_zone="+03:00"; -- меняем часовой пояс в MYSQL SELECT * FROM datetime_table; 
datetime_field
2022-06-16 16:37:23

Хранит сколько прошло секунд с 1970-01-01 00:00:00 по нулевому часовому поясу и занимает 4 байта. При выборках отображается с учётом текущего часового пояса. Часовой пояс можно задать в настройках операционной системы, где работает MySQL, в глобальных настройках MySQL или в конкретной сессии. В базе данных при создании записи с типом TIMESTAMP значение сохраняется по нулевому часовому поясу.

MySQL
CREATE TABLE timestamp_table (timestamp_field TIMESTAMP); SET @@session.time_zone="+00:00"; -- сбрасываем часовой пояс в MYSQL INSERT INTO timestamp_table VALUES("2022-06-16 16:37:23"); SET @@session.time_zone="+03:00"; -- меняем часовой пояс в MYSQL SELECT * FROM timestamp_table; 
timestamp_field
2022-06-16 19:37:23

Также стоит помнить о существующем ограничении TIMESTAMP в диапазоне возможных значений от 1970-01-01 00:00:01 до 2038-01-19 03:14:07, что ограничивает его применение. Так, данный тип данных не подойдёт для хранения дат рождения пользователей.

Значения DATETIME , DATE и TIMESTAMP могут быть заданы одним из следующих способов:

  • Как строка в формате YYYY-MM-DD HH:MM:SS или в формате YY-MM-DD HH:MM:SS для указания даты и времени
  • Как строка в формате YYYY-MM-DD или в формате YY-MM-DD для указания только даты

При указании даты допускается использовать любой знак пунктуации в качестве разделительного между частями разделов даты или времени. Также возможно задавать дату вообще без разделительного знака, слитно.

MySQL
CREATE TABLE date_table (datetime TIMESTAMP); INSERT INTO date_table VALUES("2022-06-16 16:37:23"); INSERT INTO date_table VALUES("22.05.31 8+15+04"); INSERT INTO date_table VALUES("2014/02/22 16*37*22"); INSERT INTO date_table VALUES("20220616163723"); INSERT INTO date_table VALUES("2021-02-12"); SELECT * FROM date_table; 
datetime
2022-06-16 16:37:23
2022-05-31 08:15:04
2014-02-22 16:37:22
2022-06-16 16:37:23
2021-02-12 00:00:00

Как вводить дату в sql через insert

Пожалуйста, выделяйте текст программы тегом [сode=pas] . [/сode] . Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля. Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Модераторы: Bas, Rouse_
'> SQL INSERT добавить дату

  • Подписаться на тему
  • Сообщить другу
  • Скачать/распечатать тему

Сообщ. #1 , 21.03.07, 10:26
Senior Member
Рейтинг (т): нет

как надо в sql-запросе, в функции INSERT добавлять дату? т.е.

INSERT INTO Base.DB (Name, Date) VALUES ("1", как здесь дату писать?)

в пункте Date содержится дата..

Сообщение отредактировано: Dmitry_177 - 21.03.07, 10:28
Сообщ. #2 , 21.03.07, 10:32

Рейтинг (т): 105

Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

How to insert date values into table

Since dob is DATE data type, you need to convert the literal to DATE using TO_DATE and the proper format model. The syntax is:

TO_DATE('', '') 
SQL> CREATE TABLE t(dob DATE); Table created. SQL> INSERT INTO t(dob) VALUES(TO_DATE('17/12/2015', 'DD/MM/YYYY')); 1 row created. SQL> COMMIT; Commit complete. SQL> SELECT * FROM t; DOB ---------- 17/12/2015 

A DATE data type contains both date and time elements. If you are not concerned about the time portion, then you could also use the ANSI Date literal which uses a fixed format 'YYYY-MM-DD' and is NLS independent.

SQL> INSERT INTO t(dob) VALUES(DATE '2015-12-17'); 1 row created. 

Как правильно вводить дату в sql

В SQL даты обычно вводятся в формате "ГГГГ-ММ-ДД" , где "ГГГГ" - год, "ММ" - месяц (от 01 до 12) и "ДД" - день (от 01 до 31).

Например, чтобы вставить запись в таблицу "orders" с датой заказа 22 марта 2023 года, можно использовать следующий запрос:

Если же дата вводится с помощью функции, то можно использовать стандартную функцию преобразования даты, например, функцию TO_DATE() в Oracle :

В этом примере мы используем функцию TO_DATE() для преобразования строки "22-03-2023" в дату формата "ГГГГ-ММ-ДД" . Второй аргумент функции ("DD-MM-YYYY") указывает формат входной строки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *