2016-09-20 4 views
1

従業員テーブルからデータを検索するにはSQLクエリが必要です。 Startdateが従業員表にあります。 開始日に90日を追加して、開始日が現在の月にあるかどうかを確認する必要があります。日付を日付の列に追加し、2つの日付の間にあるかどうかを確認します。SQL

私は、クエリの下にしようとしました:。(私は、クエリが正しいかどうか表示されるはずですデータを持っている)

SELECT * 
FROM `employees` 
WHERE DATE_ADD(str_to_date(startdate, '%m/%d/%Y'),INTERVAL 90 DAY) BETWEEN '09/01/2016' AND '09/30/2016' 

が、そのは私に期待される結果を与えていない

こんにちは、私は変更をしましたクエリを実行し、結果を参照してください。私も来月の結果を取得しています:(

これは、クエリ SELECT IDで、DATE_SUB(DATE_FORMAT(NOW()、間str_to_date(STARTDATE、 '%のM /%D /%Y')の従業員からSTARTDATEを'%Y-%のM-01')、INTERVAL 90日) - 今月の開始 - 90日とDATE_SUB(LAST_DAY(NOW())、INTERVAL 90日)

Query output

+0

タグDBMSのために? –

答えて

1

は私のクエリを言い換え...

このイベントは今月の開始日と終了日の90日前の日付です

WHERE str_to_date(startdate, '%m/%d/%Y') between 
    DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-01'), INTERVAL 90 day) -- start of this month - 90 days 
    and DATE_SUB(LAST_DAY(NOW()), INTERVAL 90 day) -- End of this month - 90 days 

か、あなたが使用三ヶ月

WHERE str_to_date(startdate, '%m/%d/%Y') between 
    DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-01'), INTERVAL 3 month) -- start of this month - 3 months 
    and DATE_SUB(LAST_DAY(NOW()), INTERVAL 3 month) -- End of this month - 3 months 
+0

ありがとうございました:)私はこのように考えるべきでした。 – Learning

+0

私はクエリを変更して実行しました。私は来月の結果をも得ています:( – Learning

+0

@Anantあなたは90日を望んでいますか?3ヶ月と同じではありません。例えば、90日は6月3日、9月30日です - 90日は7月2日、 – JohnHC

関連する問題