Вывод данных из базы в формате UNIX_TIMESTAMP

x-yuri

Новичок
блин, Chinch, альтернатива для CURDATE() - strftime (если все происходит на одном сервере). И в таком случае разницы между ними нет
про поиск по DATE-полю vs TIMESTAMP-полю я ничего не говорил
 

Активист

Активист
Команда форума
Chinch
ВО ) дошли до форматов. Скажи, у тебя PHPMyAdmin это верх работы с бд?

Знаете, что например, формат хранения данных (для типов дат и времени) в MySQL БД БЕЗ ФОРМАТИРОВАНИЯ выглядит так
20070204124459
(без тире, только в этом формате, и НИ КАК ИНАЧЕ).
При селекте ты видешь "ОТФОРМАТИРОВАННЫЙ РЕЗУЛЬТАТ"

Почему именно так:
1. Данным форматом можно указать любую дату, ведь unix timestamp это только после начала 1970 года.

2. Каждое следующая дата будет всегда больше предыдущей, если, перевести в целое число. Отсюда - быстрая сортировка и выборка.

И
Для хранения дат - используй солбец типа DATE и указывай его значения при добавлении или редактировании. CURRENT_TIMESTAMP это не верх программирования.

Для того, что бы форматироваться выборку дат и времени - используй функцию DATE_FORMAT (эта функция MySQL) и не выноси нам мозг.

> Объясните, почему если я вместо формата YYYY-MM-DD
> HH:MM:SS буду использовать YY-MM-DD скорость обработки
> запроса не изменится?
Потому что говоришь глупость.

1. Формат хранения дат и времени в MySQL отличается, и не разделен ни тире не двоеточиями не пробелами. Смотри выше.

2. YY-MM-DD - будет у тебя так тормазить, что ты пожелаешь! Почему? Да потому что у тебя уже будет не целое число, а строка. Будут проблемы с сортировкой и выборкой, поскольку 04 год и 97 год по сути больше, но по факту 97 > 04.

ДОШЛО?
 

Ralph

Дикий столяр
А вы уврн,чт от умншния клчств бкв в сбщени врмя его прчтеня нмнго умнштся ?
 

Chinch

Новичок
YY-MM-DD - будет у тебя так тормазить, что ты пожелаешь! Почему? Да потому что у тебя уже будет не целое число, а строка.
mysql ВСЕ временные форматы хранит ввиде целого числа. В т.ч. и DATE.

YY-MM-DD - будет у тебя так тормазить, что ты пожелаешь! Почему? Да потому что у тебя уже будет не целое число, а строка.
Смотри выше.


> Объясните, почему если я вместо формата YYYY-MM-DD > HH:MM:SS буду использовать YY-MM-DD скорость обработки > запроса не изменится? Потому что говоришь глупость.
Сделал две тестовые таблицы в одной формат времени хранился ввиде YYYYMMDDHHMMSS в другой в виде YYMMDD.

К обеим выполнил запрос SELECT * FROM `tabl` ORDER BY `date` ASC LIMIT 30
При количестве 10 тыс. записей в табл. второй запрос оказался быстрей на 15%.
При 50 тыс. записей разница составила 20%.

Проверял с помощью MySQL Query Browser
 

x-yuri

Новичок
Сделал две тестовые таблицы в одной формат времени хранился ввиде YYYYMMDDHHMMSS в другой в виде YYMMDD
что за формат хранения? Ты про тип столбца? Так тебе никто в TIMESTAMP хранить не предлагал - только когда ты очень хотел чтобы у тебя дата автоматически заполнялась
 

Ralph

Дикий столяр
Блин,ну аж всколотило...Сколько работал с компьютером,где тактовая частота процессора была 3.5 МГц и ни разу не возникало вопроса о такой мелочной оптимизации...В скрипте будет куча функций,требующих работы с диском (не самым быстрым устройством),пара-тройка неоптимизированных регулярок в 0.5 секунды каждая,зато запрос длительностью в 0.015 секунд выполнится на 15 % быстрее...
 

Chinch

Новичок
Я и не говорил, что скрипт начнет летать после этого.
Оптимизация запросов к базе это только часть работы.
 

malina95

Дракула кода:)
Извиняюсь что вмешиваюсь в дискуссию но подскажите как вывести время с русскими месяцами ?

Сейчас вывожу так

PHP:
date("Y-m-d H:i:s", $art_row['date'])
Скажите пожалуйста
 
Сверху