Главная » Просмотр файлов » alan_beaulieu-learning_sql-ru

alan_beaulieu-learning_sql-ru (865932), страница 26

Файл №865932 alan_beaulieu-learning_sql-ru (Учебник по SQL) 26 страницаalan_beaulieu-learning_sql-ru (865932) страница 262022-01-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 26)

Обязательные компоненты датТипФормат по умолчаниюDateYYYYMMDDDatetimeYYYYMMDD HH:MI:SSTimestampYYYYMMDD HH:MI:SSTimeHHH:MI:SS143Временные данныеЗагрузка данных часового пояса MySQLЕсли сервер MySQL выполняется на платформе Windows, то прежде чем настраивать глобальные или сеансовые часовые пояса,пользователю необходимо загрузить данные часовых поясов вручную. Для этого надо сделать следующее:1.

Скачать данные часового пояса по адресу http://dev.mysql.com/downloads/timezones.html.2. Остановить сервер MySQL.3. Извлечь файлы из загруженного zipфайла (в моем случаеэтот файл назывался timezone2004e.zip) и поместить егов подкаталог /data/mysql каталога установки MySQL (полный путь для моей установки был /Program Files/MySQL/MySQL Server 4.1/data/mysql).4.

Вновь запустить сервер MySQL.Чтобы посмотреть данные часового пояса, необходимо перейтик базе данных mysql с помощью команды use mysql и выполнитьследующий запрос:mysql> SELECT name FROM time_zone_name;++| name|++| Africa/Abidjan|| Africa/Accra|| Africa/Addis_Ababa|| Africa/Algiers|| Africa/Asmera|| Africa/Bamako|| Africa/Bangui|| Africa/Banjul|| Africa/Bissau|| Africa/Blantyre|| Africa/Brazzaville|| Africa/Bujumbura|...| US/Alaska|| US/Aleutian|| US/Arizona|| US/Central|| US/EastIndiana|| US/Eastern|| US/Hawaii|| US/IndianaStarke|| US/Michigan|| US/Mountain|| US/Pacific|144Глава 7.

Создание, преобразование и работа с данными| US/Samoa|| UTC|| WSU|| WET|| Zulu|++545 rows in set (0.01 sec)Чтобы изменить настройки своего часового пояса, надо выбратьодно из имен из предыдущего запроса, наиболее соответствующее вашему местоположению.Таким образом, чтобы заполнить столбец типа datetime показаниямивремени 3:30 после полудня 27 марта 2005 года, понадобиться создатьследующую строку:'20050327 15:30:00'Если сервер ожидает значение datetime, как при обновлении столбцатипа datetime или при вызове встроенной функции, принимающей аргумент datetime, можно предоставить правильно форматированнуюстроку с необходимыми компонентами даты, и сервер выполнит преобразование сам. Вот, например, выражение для корректировки датыбанковской операции:UPDATE transactionSET 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)Временные данные145Функция cast() будет рассмотрена в конце данной главы. Хотя этотпример демонстрирует построение значений типа datetime, аналогичная логика применятся и к типам date и time.

Следующий запрос использует функцию cast() для формирования значения типа date и значения типа time:mysql> SELECT CAST('20050327' AS DATE) date_field,> CAST('108:17:57' AS TIME) time_field;+++| date_field | time_field |+++| 20050327 | 108:17:57 |+++1 row in set (0.00 sec)Конечно, можно явно преобразовывать строки, даже когда серверожидает значение date, datetime или time, а не полагаться на неявноепреобразование, выполняемое сервером.При явном или неявном преобразовании строк во временные значениявсе компоненты даты должны быть предоставлены в требуемом порядке. Некоторые серверы очень строги относительно формата даты, носервер MySQL довольно мягок в отношении разделителя компонентов.Например, MySQL примет все нижеприведенные строки как допустимые представления времени 3:30 дня 27 марта 2005 года:'20050327 15:30:00''2005/03/27 15:30:00''2005,03,27,15,30,00''20050327153000'Хотя это и обеспечивает немногим большую гибкость для вас, возможна ситуация, в которой требуется сформировать временное значение безстандартных компонентов даты.

В следующем разделе будут представлены встроенные функции, гораздо более гибкие, чем функция cast().Функции для создания датЕсли требуется сгенерировать временные данные из строки, и формастроки не позволяет использовать функцию cast(), можно обратитьсяк встроенной функции, позволяющей предоставить вместе со строкойдаты строку форматирования.

MySQL включает для этой цели функцию str_to_date(). Например, для обновления столбца date из файлаизвлекается строка 'March 27, 2005'. Строка не соответствует требуемому формату YYYYMMDD, но вместо того чтобы переформатироватьее, делая пригодной для применения функции cast(), можно воспользоваться функцией str_to_date():UPDATE individualSET 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)%pA.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( ) |++++| 20050320| 22:15:56| 20050320 22:15:56 |++++1 row in set (0.00 sec)Возвращаемые этими функциями значения имеют формат по умолчанию для возвращаемого временного типа.

В Oracle Database есть функ147Временные данныеции current_date() и current_timestamp(), но нет функции current_time().SQL Server включает только функцию current_timestamp().Работа с временными даннымиВ данном разделе рассматриваются встроенные функции, принимающие аргументы даты и возвращающие даты, строки или числа.Временные функции, возвращающие датыМногие встроенные временные функции принимают в качестве аргумента одну дату и возвращают другую. Например, функция MySQLdate_add() позволяет добавить любой интервал (т.

е. дни, месяцы, года)к заданной дате, чтобы получить другую дату. Вот пример, демонстрирующий, как добавить к текущей дате пять дней:mysql> SELECT DATE_ADD(CURRENT_DATE( ), INTERVAL 5 DAY);++| DATE_ADD(CURRENT_DATE( ), INTERVAL 5 DAY) |++| 20050326|++1 row in set (0.00 sec)Второй аргумент заключает в себе три элемента: ключевое слово interval(интервал), требуемое количество и тип интервала. В табл.

7.5 приведены некоторые широко используемые типы интервалов.Таблица 7.5. Общепринятые типы интерваловИнтервалОписаниеSecondКоличество секундMinuteКоличество минутHourКоличество часовDayКоличество днейMonthКоличество месяцевYearКоличество летMinute_secondКоличества минут и секунд, разделенные двоеточиемHour_secondКоличества часов, минут и секунд, разделенные двоеточиемYear_monthКоличества лет и месяцев, разделенные дефмсомПервые шесть типов, перечисленные в табл.

7.5, довольно просты, а последние три требуют немного более подробного объяснения, посколькусодержат по несколько элементов. Например, если оказалось, что операция с ID 9999 на самом деле имела место на 3 часа 27 минут и 11 секунд позже того значения, которое было отправлено в таблицу Transaction, исправить это можно следующим образом:148Глава 7. Создание, преобразование и работа с даннымиUPDATE transactionSET txn_date = DATE_ADD(txn_date, INTERVAL '3:27:11' HOUR_SECOND)WHERE txn_id = 9999;В этом примере функция берет значение столбца txn_date, добавляетк нему 3 часа 27 минут и 11 секунд и изменяет столбец txn_date, вставляя в него результирующее значение.Или если в отделе кадров обнаруживают, что сотрудник с ID 4789 позаписанным данным моложе, чем на самом деле, можно добавить к дате его рождения, скажем, 9 лет и 11 месяцев:UPDATE employeeSET birth_date = DATE_ADD(birth_date, INTERVAL '911' YEAR_MONTH)WHERE emp_id = 4789;Для пользователей SQL Server предыдущий пример можно было бы реализовать с помощью функции dateadd():UPDATE employeeSET birth_date =DATEADD(MONTH, 119, birth_date)WHERE emp_id = 4789В SQL Server нет комбинированных интервалов (т.

Характеристики

Тип файла
PDF-файл
Размер
1,22 Mb
Материал
Предмет
Высшее учебное заведение

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее