誕生日の列を持つすべてのユーザーを保持する才能テーブルがあります。指定された年齢層の中で才能が最も良い方法は何でしょうか。ここに私が持っているものがありますが、カップルの日でオフになっているようです。そこには良い方法がありますか?c#、年齢範囲を指定してユーザーを選択するSQLを構築
// BUILD SQL FROM FORM DATA
sqlString += "SELECT * from Talent";
if (minAge != 0 || maxAge != 120)
{
// The age criteria has been change, filter by age.
// select all talents that have birthdays between the following 2 dates.
DateTime startDate = (DateTime.Now - new TimeSpan((maxAge * 365), 0, 0, 0)); // maxAge * 365 = totalDays
DateTime endDate = (DateTime.Now - new TimeSpan((minAge * 365), 0, 0, 0));
sqlString += " WHERE Birthdate BETWEEN '" + startDate.ToString() + "' AND '" + endDate.ToString() + "'";
}
オフトピックですが、パラメータ化されたSQL *を使用しない*文字列連結を使用してクエリを作成してください。 (この特別なケースでは、SQLインジェクションのリスクはないが、とにかくパラメータ化されたSQLはより洗練されている) – LukeH
あなたの '(minAge!= 0 || maxAge!= 120)'節は奇妙です: -1000〜120は大丈夫です。 0〜999は大丈夫です。 120〜0はokなど。 – LukeH
@ルークH。いくつかのサンプルコードを提供できますか?私はデータベースの年齢がintではないことに注意してください...私は誕生日のdateTimeしか持っていません。年齢計算にこれを使用します。 – RayLoveless