Дата хранения Redbean O/RM как varchar (255)?

Из этого кода:

$toolbox = RedBean_Setup::kickstartDev("mysql:*****************");

$r = $toolbox->getRedBean();

$test = $r->dispense("test");
$test->nom = 'Test #1';
$test->date = '2010-07-08';
$test->date_deux = '08/07/2010';
$test->num = 5;

$id = $r->store( $test ); 

Я получаю этот SQL:

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `nom` varchar(255) collate utf8_unicode_ci default NULL,
  `date` varchar(255) collate utf8_unicode_ci default NULL,
  `num` tinyint(3) unsigned default NULL,
  `date_deux` varchar(255) collate utf8_unicode_ci default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ;

--
-- Dumping data for table `test`
--

INSERT INTO `test` (`id`, `nom`, `date`, `num`, `date_deux`) VALUES
(1, 'Test #1', '2010-07-08', NULL, NULL),
(2, 'Test #1', '2010-07-08', 5, NULL),
(3, 'Test #1', '2010-07-08', 5, '08/07/2010'),
(4, 'Test #1', '2010-07-08', 5, '08/07/2010'),
(5, 'Test #1', '2010-07-08', 5, '08/07/2010');

есть ли особый способ использования date с RedBean?


person Sirber    schedule 09.07.2010    source источник


Ответы (4)


нашел это: http://groups.google.com/group/redbeanorm/browse_thread/thread/6961ac635e6886f6

Оптимизатор теперь будет преобразовывать столбцы со значениями даты и времени в поля даты и времени. Если будет вставлено другое значение, столбец будет восстановлен ООБД в гибком режиме.

person Sirber    schedule 09.07.2010

Похоже, вам нужно быть очень конкретным в формате столбца даты и времени. Например, следующий код должен предоставить столбец даты/времени:

$mysqldate = date("Y-m-d", $your_date); // for date column
OR
$mysqldatetime = date("Y-m-d H:i:s", $your_date_time); // for datetime column

В частности, RedBean ищет форматы "Y-m-d" для даты и "Y-m-d H:i:s" для даты и времени.

person josh    schedule 03.04.2012

Вы можете либо использовать time(), либо изменить тип столбца после замораживания БД.

person Gabor de Mooij    schedule 09.07.2010
comment
но он будет храниться как целое число, и будет сложнее сделать SQL на основе сравнения дат. - person Sirber; 09.07.2010

Стандартный оптимизатор обрабатывает столбцы DateTime. Вы можете проверить это здесь: http://redbeanphp.com/#/Plugins (почти в конце страницы)

person NicoGranelli    schedule 24.03.2011