1

19 Dec 2012getdate() によって返される日付形式に変換する方法2012-12-222012 年 12 月 19 日と2012年11 月19 日を比較すると、アルファベット順の比較により2012 年 11 月 19 日の方が大きい日付になるため、日付の比較にこれが必要です。

編集

私はこのテーブルのデータベース設計者ではありません。作業するテーブルが与えられました。そうでなければ、日付を格納するために varchar を使用しなかったでしょう

4

2 に答える 2

6

両方を日付に変換します。日付値を格納するために文字列を使用しないでください! さらに良いことに、データベース スキーマを変更すると、文字列の不一致の問題は完全になくなります。

また、Getdate() は文字列を返さないことに注意してください。日時データ型で日付を返します。クライアントはそれを文字列表現に変換します。

詳細については、SQL Server Books Online の「キャストと変換」を参照してください。

Convert (datetime, stringdate1)

壊れたデータベース列を修正するには、次のようにします。

ALTER TABLE YourTable ALTER COLUMN BadStringDate datetime;
于 2012-12-22T08:11:22.217 に答える
6

試してみてください。ただし、これは日付ではなく文字列を返します

SELECT convert(varchar, getdate(), 106)

と比較する前に、まず日付に変換する必要がありますGETDATE

SELECT convert(date, '19 Dec 2012', 106)

データベースを設計したのはあなたですか? はいの場合、次に設計するとき (または変更する時間があれば) 適切なデータ型を使用します。

于 2012-12-22T08:03:38.863 に答える