Глава 7. Создание, преобразование и работа с данными
Таким образом, чтобы заполнить столбец типа
datetime
показаниями
времени 3:30 после полудня 27 марта 2005 года, понадобиться создать
следующую строку:
'20050327 15:30:00'
Если сервер ожидает значение
datetime
, как при обновлении столбца
типа
datetime
или при вызове встроенной функции, принимающей ар
гумент
datetime
, можно предоставить правильно форматированную
строку с необходимыми компонентами даты, и сервер выполнит пре
образование сам. Вот, например, выражение для корректировки даты
банковской операции:
UPDATE transaction
SET txn_date = '20050327 15:30:00'
WHERE txn_id = 99999;
Сервер определяет, что предоставленная строка блока
set
должна быть
значением типа
datetime
, поскольку строка используется для заполне
ния столбца типа
datetime
. Следовательно, сервер попытается преобра
зовать эту строку, разбирая ее на шесть компонентов (год, месяц, день,
час, минута, секунда), включенные в формат
datetime
по умолчанию.
Преобразования строки в дату
Если сервер
не
ожидает значение типа
datetime
, необходимо указать
ему преобразовать строку в тип
datetime
. Вот, например, простой за
прос, возвращающий значение типа
datetime
с помощью функции
cast()
(привести):
mysql>
SELECT CAST('20050327 15:30:00' AS DATETIME);
++
| CAST('20050327 15:30:00' AS DATETIME) |
++
| 20050327 15:30:00 |
++
1 row in set (0.00 sec)
| US/Samoa |
| UTC |
| WSU |
| WET |
| Zulu |
++
545 rows in set (0.01 sec)
Чтобы изменить настройки своего часового пояса, надо выбрать
одно из имен из предыдущего запроса, наиболее соответствую
щее вашему местоположению.
Временные данные
145
Функция
cast()
будет рассмотрена в конце данной главы. Хотя этот
пример демонстрирует построение значений типа
datetime
, аналогич
ная логика применятся и к типам
date
и
time
. Следующий запрос ис
пользует функцию
cast()
для формирования значения типа
date
и зна
чения типа
time
:
mysql>
Достарыңызбен бөлісу: |