0

MS SQL 2005 Express の問題に苦しんでいます。以下のようなクエリは、Windows の地域オプション (コントロール パネル) が英語 (米国) に設定されている場合は完全に機能しますが、イタリア語 (およびその他の言語) に設定されている場合は失敗します。

UPDATE MyTable SET StartDate='2009-07-14 12:05:30' WHERE ID=7

ISO 8601 などのさまざまな日時形式も試しました。

yyyy-MM-ddTHH:mm:ss

(参照: http://karaszi.com/the-ultimate-guide-to-the-datetime-datatypes )

yyyyMMdd を除いて、これらの形式はどれも機能しませんが、受け入れられない時間が失われます。

また、最初にこのクエリを実行しても違いはありません。

SET LANGUAGE us_english

PS: .Net プログラムからクエリを実行しましたが、SQL Server Management Studio は同じ結果を返します。文字列をデータ時間に変換できません。設定を米国英語に戻すとすぐに、再び機能します。

このクエリを他の言語設定で機能させるにはどうすればよいですか?

4

3 に答える 3

2

地域に依存しない日付を使用する必要があります。SQL Server では、次のことができます。

UPDATE MyTable SET StartDate={ts '2009-07-14 12:05:30'} WHERE ID=7

コードから、名前付きパラメーターを使用し、DateTime オブジェクトをパラメーターとして渡すことをお勧めします。

于 2009-07-13T10:01:06.437 に答える
1

yyyymmdd hh:mm:ss 形式を試しましたか?

UPDATE MyTable SET StartDate='20090714 12:05:30' WHERE ID=7
于 2009-07-13T10:03:34.420 に答える