私の$ data入力に基づいてデータベース内の日付を動的に検索したいとします。DATETIMEとLIKEを使用して動的検索を行うSQL
日付は日付として保存され、通常は「2016-05-11」のように表示されます。 MySQLのDBで
私の句た:
Select * From Table WHERE (Table.date LIKE '$data%')
ユーザーが「20」に入った場合、ユーザは、「2016から05」の結果は意志に入るので、もし結果が20で始まるすべての日付になります私の検索が完全に機能するように、2016年から始まるすべての日付にしてください。
Sql Server 2008を介して展開する場合、私は2つのことを実現しました。
1)私はこのような
Select * From Table WHERE (Table.date LIKE '%$data$%')
としてLIKE関数を使用する場合関数は、「2016」の値のために働くだろうが、「2016-」の値が入力されたときに0の結果を返すことになります。
2)私は$データ= 2016しかしはゼロの値が返されたときに正しい値が返されるよう
Select * From Table WHERE (DATEPART(year, Table.date) LIKE(OR)= '$data')
関数として関数DATETIMEを使用する場合場合$データ=「201」は、例えば、故に動的ではありません。
私は間違っていますか?
入力の検証に問題があります。ユーザーが '20 'を入力できる場合、' 'fred'または' 2016-02-30'を入力することもできます。 –
Imはajaxコールを使用しているので、Fredと入力します。彼らは結果を得ることはありません。それは問題ではありませんか?私は正しくないのですか? – MakDo