Вывод даты

hsasha

Новичок
Вывод даты

Есть таблица. в ней колонка Created где сохраняется дата в формате 2006-12-20(год-месяц-число)
Нужно чтобы с нее сделать типо архив, допустим вы водить ссылок столько сколько есть месяцев и годов:
2006-01
2006-02
...
2007-01
...
и .тд.
Пишу запрос:
PHP:
$link = mysql_connect("localhost", "root", "")
   or die ("Could not connect to MySQL");

 mysql_select_db ("base")
   or die ("Could not select database");

   $result = mysql_query ("SELECT Created from Table ")
  or die ("Query failed");
$i=0;
while ($line = mysql_fetch_array($result)) {
$arh[$i]=$line;
print $arh[$i]['Created']."<br>";
$i++;
 }
Но это выводит всю колонку с числами 2006-01-01...2006-01-02..и т.д.
Как правильно построить??
 

440hz

php.ru
1. хранить дату в UNIXTIME тогда и выборки будет делать легче.

2. SELECT DISTINCT SUBSTRING(Created,0,7) FROM Table
 

Vallar_ultra

Любитель выпить :)
[SQL]
SELECT DISTINCT DATE_FORMAT(Created,'%Y-%m') FROM Table ORDER BY Created
[/SQL]

Выводит все уникальные записи типа YYYY-MM

440hz

А нафиг SUBSTRING, здесь же работа с ДАТОЙ???
 

hsasha

Новичок
Автор оригинала: Vallar_ultra
[SQL]
SELECT DISTINCT DATE_FORMAT(Created,'%Y-%m') FROM Table ORDER BY Created
[/SQL]

Выводит все уникальные записи типа YYYY-MM

440hz

А нафиг SUBSTRING, здесь же работа с ДАТОЙ???
Блин...так просто, аж стыдно:)
Спасибо большое..
 

440hz

php.ru
А нафиг SUBSTRING, здесь же работа с ДАТОЙ???
мож он дату в строке хранит. есть и такие перцы.
но другой вариант конечно правильней. без сомнения
=)

можно эту дату и на 3 поля разбить и выборки строить уже по 3-м полям.
 

Vallar_ultra

Любитель выпить :)
2440hz

"мож он дату в строке хранит. есть и такие перцы." - ну если кто-то додумывается хранить DATE-форматы в VARCHAR, то ему только доктор поможет....

А насчёт трёх полей - это по-моему не логично, ибо и обновление записи усложнится, и если придётся брать полную дату в один филд, то придётся concat вызывать, что не хорошо вобщем. А мускульные DATE-функции позволяют решить любые задачи с датой :)
 

440hz

php.ru
А мускульные DATE-функции позволяют решить любые задачи с датой
кто ж спорит, но многое зависит от поставленной задачи. например у меня многие задачи требуют именно трех полей. по ним удобно статистиу обсчитывать.

-~{}~ 21.12.06 16:14:

додумывается хранить DATE
в воросе у тредстартера про тип хранения ни слова не было, а идиотов я за свою жизнь встречал не мало (к присутствующим не относится).
 

Vallar_ultra

Любитель выпить :)
440hz

Просто интересно, теоретически: а если для статистики просто построить индекс на DATE-поле, это всё-равно будет медленнее выбираться нежели хранить три поля отдельно?
 

440hz

php.ru
Автор оригинала: Vallar_ultra
440hz

Просто интересно, теоретически: а если для статистики просто построить индекс на DATE-поле, это всё-равно будет медленнее выбираться нежели хранить три поля отдельно?
думаю медленне. у меня раньше было все в unixtine и когда записей перевалило за 2000000 пошли тормоза. перевел на три поля. опять засвистело.
 
Сверху