Читайте также:
|
|
Если требуется сгенерировать временные данные из строки, и форма строки не позволяет использовать функцию cast(), можно обратиться к встроенной функции, позволяющей предоставить вместе со строкой даты строку форматирования. MySQL включает для этой цели функ_ цию str_to_date(). Например, для обновления столбца date из файла извлекается строка 'March 27, 2005'. Строка не соответствует требуемо_ му формату YYYY_MM_DD, но вместо того чтобы переформатировать ее, делая пригодной для применения функции cast(), можно восполь_ зоваться функцией str_to_date():
UPDATE individual
SET birth_date = STR_TO_DATE('March 27, 2005', '%M %d, %Y')
WHERE cust_id = 9999;
146 Глава 7. Создание, преобразование и работа с данными
Второй аргумент в вызове str_to_date() определяет формат строки да_ ты. В данном случае это название месяца (%M), число (%d) и четырех_ значное число, обозначающее год (%Y). Есть более 30 общепринятых компонентов форматирования. В табл. 7.4 приведено около десятка наиболее широко используемых компонентов.
Таблица 7.4. Компоненты форматирования даты
Компонент форматирования | Описание |
%M | Название месяца (от January до December) |
%m | Номер месяца (от 01 до 12) |
%d | Число (от 01 до 31) |
%j | День года (от 001 до 366) |
%W | Дни недели (от Sunday до Saturday) |
%Y | Год, четырехзначное число |
%y | Год, двузначное число |
%H | Час (от 00 до 23) |
%h | Час (от 01 до 12) |
%i | Минуты (от 00 до 59) |
%s | Секунды (от 00 до 59) |
%f | Микросекунды (от 000000 до 999999) |
%p | A.M. или P.M. |
Функция str_to_date() возвращает значение типа datetime, date или time в зависимости от содержимого форматирующей строки. Напри_ мер, если форматирующая строка включает только %H, %i и %s, будет возвращено значение типа time.
В распоряжении пользователей Oracle Database имеется функ_ ция to_date(), с которой можно работать так же, как с функцией MySQL str_to_date().
При формировании текущей даты/времени создавать строку не требу_ ется – следующие встроенные функции организуют доступ к систем_ ным часам и возвратят текущую дату и/или время в виде строки:
mysql> SELECT CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP();
+________________+________________+_____________________+
| CURRENT_DATE() | CURRENT_TIME() | CURRENT_TIMESTAMP() | +________________+________________+_____________________+ | 2005_03_20 | 22:15:56 | 2005_03_20 22:15:56 | +________________+________________+_____________________+
1 row in set (0.00 sec)
Возвращаемые этими функциями значения имеют формат по умолча_ нию для возвращаемого временного типа. В Oracle Database есть функ_
Временные данные | |
ции current_date() и current_timestamp(), но нет функции current_time(). SQL Server включает только функцию current_timestamp().
Дата добавления: 2015-08-17; просмотров: 47 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Преобразования строки в дату | | | Временные функции, возвращающие даты |