2015-03-26 4 views
0

У меня есть таблица:Я хочу, чтобы выбрать данные, но он не работает

CREATE TABLE IF NOT EXISTS `ccu_log` (
    `id` int(15) NOT NULL AUTO_INCREMENT, 
    `ccu` int(10) DEFAULT NULL, 
    `time` time DEFAULT NULL, 
    `date` date DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5626 ; 

-- 
-- Dumping data for table `ccu_log` 
-- 

INSERT INTO `ccu_log` (`id`, `ccu`, `time`, `date`) VALUES 
(1, 0, '22:27:30', '2015-01-08'), 
(2, 0, '22:29:01', '2015-01-08'), 
(3, 0, '22:30:31', '2015-01-08'), 
(4, 0, '22:32:01', '2015-01-08'), 
(5, 3, '22:33:31', '2015-01-08'), 
(6, 0, '22:35:01', '2015-01-08'), 
(7, 4, '22:36:31', '2015-01-08'), 
(8, 8, '22:38:01', '2015-01-09'), 
(9, 5, '22:39:31', '2015-01-09'), 
(10, 1, '22:41:01', '2015-01-09'); 

Когда я хочу выбрать данные с помощью MySQL Query:

SELECT * 
FROM `ccu_log` 
WHERE UNIX_TIMESTAMP("date") = UNIX_TIMESTAMP('09-01-2015') 

Он показывает все строки из моей таблицы. Если запрос пользователя i:

SELECT * FROM `ccu_log` where UNIX_TIMESTAMP(date) = UNIX_TIMESTAMP('09-01-2015') 

Он не возвращает ожидаемые результаты.

Любые предложения?

+0

Ваши даты должны быть 'гггг-мм-дд' –

+0

я хочу отформатировать его как '09 -01-2015' . Что мне делать? –

ответ

0

Пожалуйста, попробуйте, как это,

SELECT * FROM `ccu_log` where DATE_FORMAT(date,"%d-%m-%Y") = '09-01-2015'; 
+0

Я хочу отформатировать его как '09 -01-2015 '. Что мне делать? –

+0

Этот запрос не будет работать. дата должна быть экранирована с момента ее зарезервированного слова –

+0

SELECT * FROM 'ccu_log' где DATE_FORMAT (дата,% d-% m-% Y) = '09 -01-2015 '; –

1

Когда поле уже имеет тип date, вам даже не нужно преобразовывать его в метку времени для сравнения. Просто сделайте

SELECT * FROM `ccu_log` WHERE `date`='2015-01-09'