Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > DBIx::Class, получить дату unix time


Автор: Logo 27.5.2010, 11:15
Есть объект DBIx::Class::Row, одна из колонок которого имеет MySQL тип TIMESTAMP. Метод ->get_column('column_name') и ->column_name возвращают дату в строковом представлении, как получить ее в unix time?

Автор: klem4 27.5.2010, 11:51
вариантов масса, POSIX::mktime например.

Автор: Logo 27.5.2010, 12:36
Брать дату, изначально unix time, забирать в виде строки (формат которой, кстати, тоже надо выяснить, от чего зависит), разбирать регулярками, и mktime собирать обратно в unix time? Неужели нет более прямого метода?

Автор: klem4 27.5.2010, 14:14
с DBIx не работал, но сильно сомневаюсь, что при выборке из базы, наткнувшись на unixtime, по факту int(10) он зачемто?? автоматически преобразует его к DATE, это просто бред. Смотрите в сторону того момента, где происходит запрос, и уберите там преобразование FROM_UNIXTIME. Думаю в этом дело.

Автор: Logo 27.5.2010, 14:39
Он выводит дату, как и сам MySQL в запросе SELECT timestamp_column. MySQL выедет текстовое представление даты. Чтобы вывести ее числом, в MySQL нужно сделать SELECT UNIX_TIMESTAMP(timestamp_column), а вот как взять дату числом в объекте DBIx::Class::Row?

Автор: mvsgt 27.5.2010, 17:28
DBIx::Class::InflateColumn::DateTime попробовать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)