Unixtime & mysql - PullRequest
       9

Unixtime & mysql

1 голос
/ 20 августа 2009

У меня в таблице есть поле, которое называется X, и я храню unixtime (php -> time ()). Мой вопрос:

Как я могу перечислить все месяцы из моей БД, что-то вроде: 6.2009, 8.2009 и т. Д.

И мой второй вопрос:

Как я могу сделать запрос, чтобы перечислить всю информацию на основе месяца и года в одном и том же поле X (я храню unixtime), я знаю, что это не работает, но, возможно, вы сможете лучше понять это: * = '06 .2009 '

Какие-нибудь решения?

Ответы [ 3 ]

1 голос
/ 20 августа 2009

Чтобы ответить на ваш первый вопрос, вы должны сделать это с группировкой:

SELECT FROM_UNIXTIME(timestamp_column, '%c.%Y') AS month, some_other_column FROM table_name GROUP BY month;

Что касается вашего второго вопроса, это зависит от того, что вы пытаетесь сделать. Например:

SELECT AVG(payment), SUM(*), FROM_UNIXTIME(timestamp_column, '%c.%Y') AS month, some_other_column FROM table_name WHERE timestamp_column BETWEEN UNIX_TIMESTAMP(200906) AND UNIX_TIMESTAMP(200907) - 1 GROUP BY month;

Возвращает среднее значение платежей и количество (сумма) строк для каждой группы.

Чтобы получить информацию, не сгруппированную с определенного периода, уменьшите запрос следующим образом:

SELECT payment, some_other_column FROM table_name WHERE timestamp_column BETWEEN UNIX_TIMESTAMP(200906) AND UNIX_TIMESTAMP(200907) - 1;
1 голос
/ 20 августа 2009

Попробуйте это

  1. ВЫБРАТЬ FROM_UNIXTIME (X, «% m.% Y») ИЗ ГРУППЫ СТОЛОВ ПО FROM_UNIXTIME (X, «% m.% Y»)

  2. ВЫБРАТЬ * ИЗ ТАБЛИЦЫ ГДЕ ОТ_UNIXTIME (X, '% m.% Y') = '06.2009'

Bye

1 голос
/ 20 августа 2009
  • Список всех месяцев:

    SELECT DISTINCT EXTRACT(YEAR_MONTH FROM FROM_UNIXTIME(X)) FROM MyTable;
    
  • Вернуть все строки с указанным годом и месяцем:

    SELECT * FROM MyTable
    WHERE EXTRACT(YEAR_MONTH FROM FROM_UNIXTIME(X)) = 200906;
    
...