0

日時形式に従って日付を作成しました。しかし、これを日時ではなく文字列/nvarcharとしてDBに保存しました。そのような日付を比較することはできますか? これは悪い習慣ですか?

現在、日時を格納するために nvarchar を使用しています。

4

2 に答える 2

2

はい、それらを比較することはできますが、これらの文字列を比較できるようにするには、この文字列を日付データ型に変換する必要があるため、これは確かに悪い習慣です。列にインデックスを定義している場合、列が変換され、大規模なデータベースでパフォーマンスが低下するため、インデックスは使用されなくなります。

日付を比較する例は次のとおりです。

SELECT *
FROM   tableName
WHERE  CONVERT(DATETIME, dateSTRColumn, XXX) > GETDATE()

ここXXXで、文字列として格納されている日付の現在の形式です。

于 2013-03-28T03:32:51.143 に答える
1

キャストまたは変換を使用して、文字列から日時を解析するか、生の文字列を直接比較する必要があります。後者は、文字列が保存されている形式に応じて可能です。たとえば、日付が「YYYYMMDD」の形式で保存されている場合、単純に string1 < string2 を比較できます。

于 2013-03-28T03:32:17.300 に答える