Убедитесь, что в date_holding_table
таблице, date_1
столбец имеет '%d/%m/%Y'
формат еще STR_TO_DATE(date_holding_table.date_1 ,'%d/%m/%Y')
вероятно, будет возвращать NULL и ничего не обновляется.
STR_TO_DATE
протестирована и работает:
UPDATE
action_data
,date_holding_table
SET
action_data.date_of_call = STR_TO_DATE(date_holding_table.date_1 ,'%d/%m/%Y')
WHERE
date_holding_table.id = action_data.id
теста данные:
-- Table structure for table `date_holding_table`
CREATE TABLE IF NOT EXISTS `date_holding_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date_1` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
-- Dumping data for table `date_holding_table`
INSERT INTO `date_holding_table` (`id`, `date_1`) VALUES
(1, '1/5/2013'),
(2, '20/4/2004');
-- Table structure for table `action_data`
CREATE TABLE IF NOT EXISTS `action_data` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date_of_call` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
-- Dumping data for table `action_data`
INSERT INTO `action_data` (`id`, `date_of_call`) VALUES
(1, '0000-00-00 00:00:00'),
(2, '0000-00-00 00:00:00');
После запуска мой UPDATE
запрос:
2 ряда пострадавших.
-- Dumping data for table `action_data`
INSERT INTO `action_data` (`id`, `date_of_call`) VALUES
(1, '2013-05-01 00:00:00'),
(2, '2004-04-20 00:00:00');
Выполнить код SQL непосредственно, а не в сценарии, и посмотреть, что происходит. Если все равно ничего, выполните простой SELECT и убедитесь, что данные возвращаются. – Flimzy