2010-07-09 22 views
7

Từ mã này:Redbean O/RM lưu trữ "ngày" như 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); 

tôi nhận được lệnh SQL này:

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'); 

là có một cách đặc biệt để sử dụng date với RedBean?

Trả lời

1

Bạn có thể sử dụng time() hoặc thay đổi loại cột sau khi đóng băng DB.

+0

nhưng nó sẽ được lưu trữ dưới dạng số nguyên và sẽ khó thực hiện SQL dựa trên so sánh ngày tháng. – Sirber

4

Có vẻ như bạn cần phải rất cụ thể trong định dạng cho cột ngày giờ. Ví dụ, đoạn mã sau sẽ cung cấp một cột ngày/giờ:

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

Cụ thể, "Ymd" cho ngày, và "Ymd H: i: s" cho datetime, là những định dạng mà RedBean đang tìm kiếm.

Các vấn đề liên quan