日付がvarchar
として保存されているテーブルがDD.MM.YYYY
の形式になっています。SQL文のヘルプが必要
私はこのテーブルをクエリし、月と年に基づいて結果を返すストアドプロシージャを作成しました。
私はMM
とYYYY
の2つの入力パラメータを文字列として使用します。
月と年に一致するすべてのアイテムを取得するには、where句を使用しますか? varchar
フィールドであるため、LIKE演算子を使用する必要があると思われます。
私のSQLは錆びています。
日付がvarchar
として保存されているテーブルがDD.MM.YYYY
の形式になっています。SQL文のヘルプが必要
私はこのテーブルをクエリし、月と年に基づいて結果を返すストアドプロシージャを作成しました。
私はMM
とYYYY
の2つの入力パラメータを文字列として使用します。
月と年に一致するすべてのアイテムを取得するには、where句を使用しますか? varchar
フィールドであるため、LIKE演算子を使用する必要があると思われます。
私のSQLは錆びています。
Select * from table1 t
where Month(Cast(t.DateCol as DateTime)) = Cast("1" as bigint)
AND Year(Cast(t.DateCol as DateTime)) = Cast("2011" as bigint)
WHERE field LIKE "%." + @month + "." + @year
しかし、最善の方法は、varchar列を捨てやMSSQLsを使用し、新しい列で正しい日時値を移入するためのスクリプトを実行して、正しいデータ型を持つ新しい列を作成することです日時フィールドを検索する方法に組み込まれています。これにより、長期的にはより迅速なルックアップが得られます。
WHERE MONTH(field) = @month
AND YEAR(field) = @year
この(仮定@MMと@YYYYがあなたの入力パラメータです)試してみてください。
SELECT *
FROM <YOUR_TABLE>
WHERE <DATE_COLUMN> LIKE '[0-9][0-9].' + @MM + '.' + @YYYY
SELECT * FROM t1 WHERE RIGHT(datecol,7)= @StringMM + "." + @StringYYYY
これは何RDBMSですが? – Jacob
MS SQL Server 2008 R2 –