1

バックエンド内で、適切に設計された制約を使用して、数値と日付の列として格納する必要がある値がすべて varchar として格納されていた (UI 検証のみを使用) という奇妙なシステムをリファクタリングしています。問題は、これを行っている間に、新しいシステムを実行し始めなければならないということです。

このvarchar列を整数として操作して、より低い比較またはより大きな比較を行うことは可能ですか?日付が同じ形式dd/MM/yyyyで格納されている場合、そのvarchar列も日付として扱い、関数を次のように使用できます:間に?

4

2 に答える 2

2

次のような計算列 (または列を含むビュー) を追加できます。

CONVERT(DATE, column_name, 103)

パフォーマンスの問題については、計算列を永続化および/またはインデックス化できます。

ただし、構造を変更する場合は、最初にデータ型を修正することもできます。

于 2012-06-04T18:57:00.660 に答える
1

この作品のようなものでしょうか:

SELECT Column1, Column2
FROM Table
WHERE CONVERT(datetime, DateColumn, 3) BETWEEN @StartDate AND @EndDate
于 2012-06-04T18:02:30.497 に答える