2016-04-24 8 views
0

こんにちは、私はどこポスト日付少ない現在の日付より選択ポストをしようとし、時間を投稿少ない 現在の時間をありがとう残念ながら、私は別の列にポストの日付とポストの時間をかけ、 だ場合は、日付と時刻の両方の列を選択します現在の日のポストを取得し、それは時間が私が試した時はいつでもMYSQL

SELECT date_published,`twitter_post`,`twitter_pubstatus`,`time_published` 
FROM `topics` WHERE date_published <= CURDATE() AND time_published < CURTIME() 

合格MySQLは現在の時間未満time_publishedでポストをフィルタとして、これは私のコースの間違った結果を与えます。 短いHoでは、現在の日付よりも前の時刻を公開し、現在の日付よりも古い投稿を選択する条件を適用することができます。 ASステートメントを使用して、最初の結果をフィルタリングしようとしました)、そしてそれを他の結果と結びつけるよりも(今日の投稿は日付がついていて、時間が過ぎた)。 これは私のtopics構造

twitter_post  user_id  date_published time_published 
------------|-----------------|--------------|---------------- 
some post | 6507763398 | 2016-04-22 | 22:00:21 
other post | 6507763398 | 2016-04-24 | 02:10:21 
future post | 6507763398 | 2016-04-24 | 23:34:21 
+0

date_published <= '。date(' Y-m-d ')。とtime_published <'.date(' H:i:s ')をクエリに追加します。それをエコーする。あなたは何を得ることができます。 – rahul

+0

最初に、日付と時刻を単一のエンティティとして格納します – Strawberry

+0

@Strawberry私が思っていたものの、スクリプトには別の列に日付と時刻を入力する部分があります。これにより、挿入スクリプトも書き換えられます。 @プラム私はすでに日付の変数を出力し、すべて正常に動作しますが、問題の日付と時刻フィールドは別の列にあります –

答えて

2

短くて読みやすいですが、インデックスを使用することはできません使用

WHERE timestamp(date_published, time_published) <= NOW() 

です。それをより速く使用するには

WHERE date_published < CURDATE() 
    OR (date_published = CURDATE() AND time_published <= CURTIME()) 
+0

完璧な私は 'タイムスタンプ'機能について知らなかった。それは、日付と時刻を一緒に結びつけ、私の間違いを修正する。 –

関連する問題