0

(下手な英語でごめんなさい)

ねえ、日付データ型を更新しようとしているときに問題が発生しました。

それが私のSQLクエリです

UPDATE       Employees
SET                BirthDateEmp = '04/11/2012'
WHERE        (IdEmp = 1)

だから私は日= 4、月= 11、年2012を設定します

しかし、テーブルを確認すると、日と月が切り替わるので、11日目と4月目です。

そして、この日付 '13/10/2012' (day - 13 month - 10 year -2012) を設定しようとすると、 day-10 month-13 を入れようとしているためにエラーが発生しました。エラー

なぜそれが起こっているのですか?

4

4 に答える 4

0

問題は、使用している日付形式があいまいであり、サーバーのカルチャが期待したものではないことです。

理想的には、型指定されたパラメーターを操作し、日付を文字列として処理しないようにします。

文字列を使用する必要がある場合は、次の形式が最も一貫して成功することがわかりました:yyyy-MM-dd

于 2013-03-02T12:31:55.247 に答える
0

SQL サーバーが米国形式の日付 (mm/dd/yyyy) を想定しているようです。使用しているデータベースと OS をお知らせください。

于 2013-03-02T12:29:59.207 に答える
0

アプリケーションとデータベースのローカリゼーション設定が互いに互換性がありません。

アプリケーションには英国の日付形式 (DD/MM/YYYY) が含まれている (そして必要な) ようですが、データベースには米国の日付形式 (MM/DD/YYYY) が含まれています。

データベースを変更して日付をニュートラル形式で保存し、アプリケーションを更新してローカル日付を取得し、データベースに保存する前にこのニュートラル形式に変換し、データベースから表示することができます。

また、文字列としてではなく、日付 (または DateTime) 列に日付を格納する必要があります。

于 2013-03-02T12:30:04.467 に答える
-1

コードで日付データ型の形式を変更し、クエリを確認できます

UPDATE       Employees
SET                BirthDateEmp = '11/04/2012'
WHERE        (IdEmp = 1)

SQLでは日付データ型のデフォルト形式が(MM / dd / yyyy)であるため、テーブルが更新されます。これに従ってください。

于 2013-03-02T12:31:52.853 に答える