0
SELECT
   doctors. fullname,
   dutyroster.date,
   dutyroster.time
FROM
   dutyroster
INNER JOIN doctors ON doctors.docid = dutyroster.docid
WHERE doctors.docid = $doc_id AND
dutyroster.date = DATE(NOW()) AND DATE(NOW())+ INTERVAL 1 DAY
ORDER BY dutyroster.`date`  ASC";

このクエリは、dutyrosterと呼ばれるテーブルから特定の医師情報を検索するために使用されます。当日と明日のみのドキュメントシェドゥル情報を取得したいのですが、これは機能しません。

そして、現在の日付と次のすべての日付も返すため、これも機能しない2番目の日付を作成しました

SELECT
    doctors. fullname,
    dutyroster.date,
    dutyroster.time
FROM
    dutyroster
INNER JOIN doctors ON doctors.docid = dutyroster.docid
WHERE doctors.docid = $doc_id AND
DATE_SUB(CURDATE(),INTERVAL 2 DAY) <= dutyroster.date
ORDER BY dutyroster.`date`  ASC"
4

2 に答える 2

1

それ以外の

... AND dutyroster.date = DATE(NOW()) AND DATE(NOW())+ INTERVAL 1 DAY

試す

... AND (dutyroster.date = CURDATE() OR 
         dutyroster.date = CURDATE() + INTERVAL 1 DAY))

または@MarcMが提案したように、より簡潔な方法で

... AND dutyroster.date IN (CURDATE(), CURDATE() + INTERVAL 1 day)
于 2013-03-06T22:14:03.437 に答える
0

最初の試行から、COBOL をプログラミングしようとしているように見えます。また、将来の参考のために、「これは機能しません」というコメントは役に立ちません。実際に何が起こるかを言うべきです。

とにかく、 where 句を次のいずれかに変更してみてください。

WHERE doctor.docid = $doc_id AND (dutyroster.date = CURRENT_DATE OR dutyroster.date = CURRENT_DATE + INTERVAL 1 DAY)

また:

WHERE doctor.docid = $doc_id AND dutyroster.date IN (CURRENT_DATE, CURRENT_DATE + INTERVAL 1 DAY))

于 2013-03-06T22:27:06.330 に答える