日付を比較しようとしていますが、クエリで結果が返されません。クエリを正しく記述したかどうか知りたいですか?
SELECT *
FROM a, b
WHERE
CONVERT(varchar(50),a.BirthDate, 101) between CONVERT(varchar(50),b.minage, 101) and CONVERT(varchar(50),b.maxage, 101)
この日付比較クエリに何か問題がありますか?
テーブル構造は次のとおりです。
Table a:
Column Name Datatype
Birthdate Date
Table b's row:
Column Name Datatype
minage Date - calculated as : select DATEADD(year, -41, GETDATE())
maxage Date - calculated as : select DATEADD(year, -21, GETDATE())
表Bのマイネージでは、最大値の基準が行ごとに変わります。したがって、範囲は、minage 0 max age 20、minage 50 maxage 60などになります(範囲は重複しません)。
クエリで何が間違っている可能性があるかについてのアイデアはありますか?
時間や分ではなく、日付とのみ比較/計算する必要があります。