-1

「」がその日そこにあるべきではないという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);
4

1 に答える 1

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
于 2013-08-02T18:29:59.960 に答える