понедельник, 30 марта 2015 г.

Date(формат unix время)

MYSQL функции форматирования даты и времени



Описание



STR_TO_DATE(date, format) функция обратная предыдущей, она принимает дату date в формате format, а возвращает дату в формате MySQL.



SELECT STR_TO_DATE('17.04.2011 23:50', '%d.%m.%Y %H:%i');



Как видите, сама функция GET_FORMAT() возвращает формат представления, а вместе с функцией DATE_FORMAT() выдает дату в нужном формате. Сделайте сами запросы со всеми пятью стандартами и посмотрите на разницу.



TIME_FORMAT(time, format) функция аналогична функции DATE_FORMAT(), но используется только для времени:



SELECT TIME_FORMAT('22:38:15', '%H-%i-%s');



GET_FORMAT(date, format) функция возвращает строку форматирования, соответствующую одному из пяти форматов времени:



EUR - европейский стандарт



USA - американский стандарт



JIS - японский индустриальный стандарт



ISO - стандарт ISO (международная организация стандартов)



INTERNAL - интернациональный стандарт



Эту функцию хорошо использовать совместно с предыдущей - DATE_FORMAT(). Посмотрим на примере:



SELECT GET_FORMAT(DATE, 'EUR'), DATE_FORMAT('2011-04-17', GET_FORMAT(DATE, 'EUR'));



Как видите, сама функция GET_FORMAT() возвращает формат представления, а вместе с функцией DATE_FORMAT() выдает дату в нужном формате. Сделайте сами запросы со всеми пятью стандартами и посмотрите на разницу.



Ну вот, теперь вы знаете о работе с датами и временем в MySQL практически все. Это вам очень пригодится при разработке различных web-приложений. Например, если пользователь в форму на сайте вводит дату в привычном ему формате, вам не составит труда применить нужную функцию, чтобы в БД дата попала в нужном формате.



Что такое Unix время или Unix эпоха (Unix epoch или Unix time или POSIX time или Unix timestamp) ?



UNIX-время или POSIX-время (англ. Unix time) - способ кодирования времени, принятый в UNIX и других POSIX-совместимых операционных системах.



Моментом начала отсчёта считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970, время с этого момента называют "эрой UNIX" (англ. Unix Epoch).



Время UNIX согласуется с UTC, в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются.



Способ хранения времени в виде количества секунд очень удобно использовать при сравнении дат (с точностью до секунды), а также для хранения дат: при необходимости их можно преобразовать в любой удобочитаемый формат. Дата и время в этом формате также занимают очень мало места (4 или 8 байтов, в зависимости от размера машинного слова), поэтому его разумно использовать для хранения больших объёмов дат. Недостатки в производительности могут проявиться при очень частом обращении к элементам даты, вроде номера месяца и т. п. Но в большинстве случаев эффективнее хранить время в виде одной величины, а не набора полей.



Обычная дата(Human readable time)



UNIX-время



Эта статья о формате кодирования времени; об утилите см. time (Unix) .



UNIX-время (англ.   Unix time ) или POSIX-время  — система описания моментов во времени, принятая в UNIX и других POSIX - совместимых операционных системах. Определяется как количество секунд, прошедших с полуночи (00:00:00 UTC ) 1 января 1970 года (четверг); время с этого момента называют «эрой UNIX» (англ.   Unix Epoch ).



Время UNIX согласуется с UTC — в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются, то есть високосные секунды не учитываются.



Представление времени в виде количества секунд удобно использовать для сравнения и хранения дат (дата и время в этом формате занимают всего 4 или 8 байтов ). При необходимости обращения к элементам дат (день, месяц, год) секунды можно преобразовать в любой подходящий формат (и наоборот), но если такие преобразования выполняются часто, они снижают производительность.



В программах для хранения UNIX-времени используется целочисленный знаковый тип. Знаковость упрощает вычисление разницы в секундах между двумя моментами времени, которая может быть отрицательной. 32-битные числа со знаком могут ссылаться на моменты времени от пятницы 13 декабря 1901 года 20:45:52 до вторника 19 января 2038 года 03:14:07 включительно.



Чтобы узнать текущее UNIX-время в большинстве UNIX-подобных систем, можно использовать команду date +%s .



Unix Date Format Examples



Unix date format is needed in the scripts, timestamped log files and script generated reports . This article attempts to simply date formatting with several examples . Date command in Unix is used to format date as well as time. First portion of this article covers Date function and the second portion has the time function covered .



Unix Basic date format



$date “+<Parameter><seprator><Parameter><seprator><Parameter>



Where Parameters is any one or more Parameter from the list below and separator is a any field separator like hyphen( – ). slash. colon : and it is optional.



lets get the parameter for year. month and date and produce a hyphen separated date format



$date “+%Y-%m-%d”



%Y is keyword for four digit year



%m is keyword for two digit month



%d is keyword for two digit date



6.3.4 Функции даты и времени



Описание диапазона величин для каждого типа и возможные форматы представления даты и времени приведены в разделе section 6.2.2 Типы данных даты и времени .



Ниже представлен пример, в котором используются функции даты. Приведенный запрос выбирает все записи с величиной date_col в течение последних 30 дней:



DAYOFWEEK(date) Возвращает индекс дня недели для аргумента date (1 = воскресенье, 2 = понедельник. 7 = суббота). Эти индексные величины соответствуют стандарту ODBC: WEEKDAY(date) Возвращает индекс дня недели для аргумента date (0 =понедельник, 1 = вторник. 6 = воскресенье): DAYOFMONTH(date) Возвращает порядковый номер дня месяца для аргумента date в диапазоне от 1 до 31: DAYOFYEAR(date) Возвращает порядковый номер дня года для аргумента date в диапазоне от 1 до 366: MONTH(date) Возвращает порядковый номер месяца в году для аргумента date в диапазоне от 1 до 12: DAYNAME(date) Возвращает название дня недели для аргумента date. MONTHNAME(date) Возвращает название месяца для аргумента date. QUARTER(date) Возвращает номер квартала года для аргумента date в диапазоне от 1 до 4: WEEK(date) WEEK(date, first) При наличии одного аргумента возвращает порядковый номер недели в году для date в диапазоне от 0 до 53 (да, возможно начало 53-й недели) для регионов, где воскресенье считается первым днем недели. Форма WEEK() с двумя аргументами позволяет уточнить, с какого дня начинается неделя - с воскресенья или с понедельника. Неделя начинается с воскресенья, если второй аргумент равен 0, и с понедельника - если 1: Примечание: в версии 4.0 функция WEEK(#,0) была изменена с целью соответствия календарю США. YEAR(date) Возвращает год для аргумента date в диапазоне от 1000 до 9999: YEARWEEK(date) YEARWEEK(date, first) Возвращает год и неделю для аргумента date. Второй аргумент в данной функции работает подобно второму аргументу в функции WEEK(). Следует учитывать, что год может отличаться от указанного в аргументе date для первой и последней недель года: HOUR(time) Возвращает час для аргумента time в диапазоне от 0 до 23: MINUTE(time) Возвращает количество минут для аргумента time в диапазоне от 0 до 59: SECOND(time) Возвращает количество секунд для аргумента time в диапазоне от 0 до 59: PERIOD_ADD(P, N) Добавляет N месяцев к периоду P (в формате YYMM или YYYYMM ). Возвращает величину в формате YYYYMM. Следует учитывать, что аргумент периода P не является значением даты: PERIOD_DIFF(P1,P2) Возвращает количество месяцев между периодами P1 и P2. P1 и P2 должны быть в формате YYMM или YYYYMM. Следует учитывать, что аргументы периода P1 и P2 не являются значениями даты: DATE_ADD(date, INTERVAL expr type) DATE_SUB(date, INTERVAL expr type) ADDDATE(date, INTERVAL expr type) SUBDATE(date, INTERVAL expr type) Данные функции производят арифметические действия над датами. Обе являются нововведением версии MySQL 3.22. Функции ADDDATE() и SUBDATE() - синонимы для DATE_ADD() и DATE_SUB(). В версии MySQL 3.23 вместо функций DATE_ADD() и DATE_SUB() можно использовать операторы + и -. если выражение с правой стороны представляет собой столбец типа DATE или DATETIME (см. пример ниже). Аргумент date является величиной типа DATETIME или DATE. задающей начальную дату. Выражение expr задает величину интервала, который следует добавить к начальной дате или вычесть из начальной даты. Выражение expr представляет собой строку, которая может начинаться с - для отрицательных значений интервалов. Ключевое слово type показывает, каким образом необходимо интерпретировать данное выражение. Вспомогательная функция EXTRACT(type FROM date) возвращает интервал указанного типа ( type ) из значения даты. В следующей таблице показана взаимосвязь аргументов type и expr :



Ожидаемый формат expr



date



date — Форматирует вывод системной даты/времени



Описание



string date ( string $format [, int $timestamp = time() ] )



Возвращает строку, отформатированную в соответствии с указанным шаблоном format. Используется метка времени, заданная аргументом timestamp. или текущее системное время, если timestamp не задан. Таким образом, timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time() .



Список параметров



Смотрите также time()



Любые другие символы, встреченные в строке-шаблоне, будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate() .



Поскольку рассматриваемая функция принимает в качестве параметра временные метки типа integer. форматирующий символ u будет полезен только при использовании функции date_format() и пользовательских меток времени, созданных с помощью функции date_create() .



Необязательный параметр timestamp представляет собой integer метку времени, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time() .



Возвращаемые значения



Возвращает отформатированную строку с датой. При передаче нечислового значения в качестве параметра timestamp будет возвращено FALSE и вызвана ошибка уровня E_WARNING .



Как известно, что не измеряется, то нельзя улучшить. И если про замеры на бэкенде (сколько времени выполняются запросы к базе, как быстро генерируется страницы, сколько запросов в секунду может обрабатывать веб-сервер) знают и выполняют их почти все разработчики, то client side производительности незаслуженно уделяется значительно меньше внимания. Быстрый ли DNS, хороший ли канал у хостера, закэширована ли статика, не перегружен ли сайт javascript'ом - все это помогает оценить Navigation timing API.



В докладе мы расскажем о том, как делали систему аналитики, основанную на Navigation timing API, для десятков тысяч сайтов:



- Как сделать подобную систему за 1 месяц и $1000, используя в Amazon Web Services (AWS) Kinesis и DynamoDB.



- Как быстро (очень быстро!) принимать миллионы хитов с помощью Nginx+Lua.



- Как в реальном времени обрабатывать миллионы хитов, постоянно агрегируя данные (потоковая обработка BigData. без хранения BigData).



В большинстве современных баз данных предусмотрена возможность масштабировать рабочую нагрузку, превышающую мощность одной машины. Но обслуживание базы данных на нескольких машинах намного сложнее, чем на одной машине. Когда возникает потребность масштабировать, она возникает неожиданно и в большом количестве, чтобы справиться с новыми проблемами – такими, как соответствие индекса и балансировка нагрузки.



В данном докладе я расскажу о двух типичных проблемах, с которыми сталкиваются базы данных с горизонтальным масштабированием, дам обзор того, как основные конкуренты справляются с этими проблемами, а затем покажу, как TokuMX решает эти проблемы благодаря особым свойствам индексирования фрактальных деревьев. Также я буду обсуждать с вами собственно структуру данных фрактальных деревьев и объясню, как она помогает достичь необходимых свойств для оптимизаций TokuMX.



Сети вокруг нас. Любой объект окружающего нас мира можно представить в виде совокупности объектов и связей между ними. Если объектов становится слишком много, а связи между ними слишком сложны, поневоле приходится задуматься о том, как полученную сеть эффективно хранить и обрабатывать. Классические алгоритмы и структуры данных пасуют уже на сравнительно небольших графах.



Что делать, если объект вашего исследования это весь веб-граф Рунета, граф Твиттера, дорожная сеть Европейского союза или граф знаний Google? Как корректно и быстро вычислить диаметр графа, найти компоненты связности, кратчайшее расстояние между всеми парами вершин или разрушить минимальное остовное дерево?



Многие без оглядки бросаются в омут Neo4j и других графовых баз данных, кто-то изобретает свои способы компактного хранения графа в оперативной памяти, а некоторые прибегают к мощи парадигмы MapReduce.



Традиционная MapReduce парадигма не оправдывает себя при выполнении расчетов на больших графах. Большая часть современных фреймворков обработки графов построено на основе модели Bulk Synchronous Parallel, в том числе и знаменитые Pregel и Apache Giraph.



Дивный мир Graph Mining и Large-Scale Graph Processing приковывает к себе взгляды многих исследовательских компаний и увлеченных теорией графов программистов, вовлекая в процесс создания новых алгоритмов и открытых инструментов. Это увлекательная, но тернистая тропа. А дорогу, как известно, осилит идущий.

Комментариев нет:

Отправить комментарий