这是我需要找出关于那个“”的sql当天不应该在那里。我最终也会发现如果我把它设置为21:00所以1.21必须消失!
现在它适用于日期,但现在似乎是时候了。
这不起作用
SELECT title, Dato, Tidspunkt, antal
FROM tilmeldt
WHERE Dato >= CURDATE() Tidspunkt > TIME()
ORDER BY Dato DESC
这100%
SELECT title, Dato, Tidspunkt, antal
FROM tilmeldt
WHERE Dato >= CURDATE()
ORDER BY Dato DESC
问题在于:当它到了一天的时间,所以它必须立即离开,没有任何反应。
CREATE TABLE IF NOT EXISTS `tilmeldt` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(150) COLLATE utf8_danish_ci NOT NULL,
`info` longtext COLLATE utf8_danish_ci NOT NULL,
`Dato` date NOT NULL,
`Tidspunkt` time NOT NULL,
`antal` int(3) NOT NULL,
`opret_navn` varchar(200) COLLATE utf8_danish_ci NOT NULL,
`opret_email` varchar(250) COLLATE utf8_danish_ci NOT NULL,
`opret_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=3 ;
--
-- Data dump for tabellen `tilmeldt`
--
INSERT INTO `tilmeldt` (`id`, `title`, `info`, `Dato`, `Tidspunkt`, `antal`, `opret_navn`, `opret_email`, `opret_id`) VALUES
(1, 'Hello World', '<p>ehhehehe</p>', '2013-08-02', '16:00:00', 0, 'Jesper', 'jp@hey.dk', 1),
(2, 'herherh', '<p>hererh</p>', '2013-08-02', '21:00:00', 1, 'Jesper', 'jp@hey.dk', 1);
答案 0 :(得分:2)
那是因为你在where子句中的条件之间缺少AND
或OR
的逻辑运算符。尝试以下(我在这里假设AND
):
SELECT title, Dato, Tidspunkt, antal
FROM tilmeldt
WHERE Dato >= CURDATE() AND Tidspunkt > TIME(NOW()) ORDER BY Dato DESC
<强>更新强>
你也错过了time()
函数的参数。见这里:https://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_time。
或者,您可以使用current_time()
函数,如下所示:
SELECT title, Dato, Tidspunkt, antal
FROM tilmeldt
WHERE Dato >= CURDATE() AND Tidspunkt > CURRENT_TIME() ORDER BY Dato DESC
选择小提琴中使用的代码(结果中的格式化时间):
SELECT title, Dato, time_format('%H-%i-%s', Tidspunkt) as Tidspunkt, antal
FROM tilmeldt
WHERE Dato >= CURDATE() AND Tidspunkt > CURRENT_TIME() ORDER BY Dato DESC