Jump to content
  • 0

Как сделать вывод из базы по дате?


Glebr
 Share

Question

23 answers to this question

Recommended Posts

  • 0
А база данных какая? Судя по varchar, это не sqlite, так почему тогда не date?

Ну один фиг, переводи дату в указанный формат и она будет сортироваться.

если переведу в дату, то цифры ток выводится будут, а мне надо ж ещё и буквы месяцев :)

Link to comment
Share on other sites

  • 0

Все нормальные люди хранят дату в поле типа INT в виде unix timestamp. Она и сортируется по человечески, и в человеческую дату преобразуется функциями date() или strftime(). Или SQL функциями DATE_FORMAT( FROM_UNIXTIME( date ), '%d-%m-%Y' ) например

Числа базе проще хранить и обрабатывать!

Link to comment
Share on other sites

  • 0
Все нормальные люди хранят дату в поле типа INT в виде unix timestamp. Она и сортируется по человечески, и в человеческую дату преобразуется функциями date() или strftime(). Или SQL функциями DATE_FORMAT( FROM_UNIXTIME( date ), '%d-%m-%Y' ) например

Числа базе проще хранить и обрабатывать!

Хотите сказать что тип datetime для поля - это не нормально ? нужно int ? :)

Link to comment
Share on other sites

  • 0
Хотите сказать что тип datetime для поля - это не нормально ? нужно int ? blink.gif
Именно
Я всю жизнь храню в datetime, Вы наверно еще айпишники в int приводите?)
Не такую уж и долгую жизнь... А по IP мне сортировать не приходилось.. пока... Не вижу в этом смысла...
строки тоже лучше хранить как последовательность ord-значений, да.
Вы терминами умными напрасно не кидайтесь. Если уж на то пошло, символы в базе и так хранятся в виде последовательностей чисел, соответственно кодировке...
Link to comment
Share on other sites

  • 0
Именно

Если вы так делаете только для сортировки, то напрасно. MySqL нормально (адекватно) сортирует поля datetime

Других аргументаций с вашей стороны я не видел

Link to comment
Share on other sites

  • 0
Если вы так делаете только для сортировки, то напрасно. MySqL нормально (адекватно) сортирует поля datetime

Других аргументаций с вашей стороны я не видел

Хорошо, выводите вы дату на страницу. Как вы ее отформатируете в "Русском" формате? Либо MySQL функцией Date_format, либо на PHP при помощи strtotime и strftime.... Либо еще хуже... Обрабатывать такую дату проблематично.

А timestamp без лишних проблем можем преобразовать в любой формат представления, при необходимости вычесть или добавить какой-либо временной период. Проще простого. Можно timestamp передать в Smarty и отформатировать как надо модификатором date_format...

В MySQL как INT так и TIMESTAMP занимают 4 байта, но TIMESTAMP требуется дополнитеольное преобразование для кастомного форматирования, по сравнению с int, где так же храниться unix timestamp, только в более низкоуровневом формате.

Сколько в базе занимает поле DATETIME и как оно обрабатывается и индексируется одним девелоперам мускуля известно.

В общем-то ни к чему не принуждаю, но почему-то разработчики Drupal и Joomla также выбирают хранить даты в виде чисел. А как уж Вам работать, выбирать Вам самим... Главное, чтобы когда почти все будет готово, не пришлось на корню переделывать.

Link to comment
Share on other sites

  • 0
Вы терминами умными напрасно не кидайтесь. Если уж на то пошло, символы в базе и так хранятся в виде последовательностей чисел, соответственно кодировке...
Я это знаю, имелся в виду именно перевод в человекочитаемое представление, поэтому я и написал ord.

Дату с временем ведь тоже можно по байтам нарезать и хранить как символы с полученными кодами.

Link to comment
Share on other sites

  • 0

keltanas, по-моему вы просто так привыкли и вам это удобно и ничего не хотите с этим менять, как разработчики друпал и жумлы. Я сторонник других стандартов, и выше описанные вами манипуляции с датой для меня никогда небыли проблемными с datatime. Вас я не отговариваю, это ваш выбор и ваш путь. Удобно - пожалуста, просто интересна была мотивация(интерес удовлетворил, спасибо). Жизнь покажет чья дорога верная.

Link to comment
Share on other sites

  • 0
11.3.1.1. TIMESTAMP Properties Prior to MySQL 4.1

The TIMESTAMP column type provides a type that you can use to automatically mark INSERT or UPDATE operations with the current date and time. If you have multiple TIMESTAMP columns in a table, only the first one is updated automatically. (From MySQL 4.1.2 on, you can specify which TIMESTAMP column updates; see Section 11.3.1.2, ”TIMESTAMP Properties as of MySQL 4.1”.)

Automatic updating of the first TIMESTAMP column in a table occurs under any of the following conditions:

You explicitly set the column to NULL.

The column is not specified explicitly in an INSERT or LOAD DATA INFILE statement.

The column is not specified explicitly in an UPDATE statement and some other column changes value. An UPDATE that sets a column to the value it does not cause the TIMESTAMP column to be updated; if you set a column to its current value, MySQL ignores the update for efficiency.

A TIMESTAMP column other than the first also can be assigned the current date and time by setting it to NULL or to any function that produces the current date and time (NOW(), CURRENT_TIMESTAMP).

You can set any TIMESTAMP column to a value different from the current date and time by setting it explicitly to the desired value. This is true even for the first TIMESTAMP column. You can use this property if, for example, you want a TIMESTAMP to be set to the current date and time when you create a row, but not to be changed whenever the row is updated later

Да, всё-таки можно, но почему не datetime? Edited by Int
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy