現象
たとえば次のようなシナリオを考えてみます。
Microsoft SQL Server JDBC Driver バージョン 3.0 と Java ランタイム環境バージョン 1.7 (JRE 1.7) を使用して、SQL Server データベースに接続する Java アプリケーションがあります。
アプリケーションは、次のいずれかの関数を使用して、データベースから日付を取得します。
- getDate()
- getTimeStamp()
- getDateTimeOffset()
SQL Server データベースのデータ型は、DATE、DATETIME2、または DATETIMEOFFSET です。
このシナリオでは、関数から正しくない日付値が返されます。
メモ
この問題は、関数によって返される日付値がグレゴリオ暦の 1582 年より新しい場合にのみ発生します。
アプリケーションで次のいずれかのコンポーネントの組み合わせを使用している場合、この問題は発生しません。
- Microsoft SQL Server JDBC Driver バージョン 3.0 および JRE 1.5 または JRE 1.6
- Microsoft SQL Server JDBC Driver バージョン 2.0 および JRE 1.7
原因
「現象」セクションで説明されている関数の動作は、Java カレンダー API によって異なります。 これらの API の動作が変更されたため、Microsoft SQL Server JDBC Driver バージョン 3.0 では正しくない値が返されます。
解決策
Microsoft SQL Server JDBC Driver バージョン 3.0 は、「現象」セクションで説明されている関数が JRE バージョンに関係なく正しい値を返すように変更されました。 microsoft JDBC Driver 4.0 for SQL Serverにもこの変更が含まれます。
修正プログラムの情報
マイクロソフトでは、この問題を修正する修正プログラムを提供しています。 ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。 この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。 この修正プログラムは、今後さらにテストを行う場合があります。 したがって、この問題で深刻な影響を受けていない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことを推奨します。
修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。 このセクションが表示されていない場合は、Microsoft カスタマー サービス & サポート にお問い合わせのうえ、修正プログラムを入手してください。
注: 別の問題が発生した場合、またはトラブルシューティングが必要な場合には、別のサービス リクエストを作成することが必要になる場合があります。 特定の修正プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。 マイクロソフト カスタマー サービス サポートの電話番号一覧を参照、または別のサービス リクエストを作成するには、次のマイクロソフト Web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support メモ "修正プログラムのダウンロードが可能" フォームには、修正プログラムを使用できる言語が表示されます。 使用している言語が表示されない場合は、その言語の修正プログラムが存在しないことになります。
インストール情報
この修正プログラムをインストールするには、次の手順に従います。
Windows
- この修正プログラムの license.txt ファイルを読み取ります。
- この使用許諾契約に同意するには、Microsoft SQL Server JDBC Driver バージョン 3.0 をダウンロードして使用します。
- sqljdbc_<version>_enu.exe ファイルを一時ディレクトリにダウンロードして保存します。
- sqljdbc_<version>_enu.exe ファイルを実行します。
- メッセージが表示されたら、インストール ディレクトリを入力します。 次の既定のディレクトリを使用して、圧縮 (.zip) ファイルをアンパックすることをお勧めします。
%ProgramFiles%\Microsoft SQLServer JDBC Driver 3.0 - パッケージがアンパックされたら、InstallationDirectory\Microsoft SQL Server JDBC Driver 3.0 \sqljdbc_<version>\<language>\help\default.htm を開いて JDBC ヘルプ システムを開きます。 JDBC ヘルプが Web ブラウザーに表示されます。
Unix
- この修正プログラムの license.txt ファイルを読み取ります。
- この使用許諾契約に同意するには、Microsoft SQL Server JDBC Driver バージョン 3.0 をダウンロードして使用します。
- sqljdbc_<version>_enu.tar.gz ファイルをダウンロードして一時ディレクトリに保存します。
- 圧縮された.gz ファイルを開梱するには、ファイルを保存したディレクトリを見つけて、次のように入力します。
gzip -d sqljdbc_<version>_enu.tar.gz - .tar ファイルをアンパックするには、ドライバーをインストールするディレクトリに移動し、次のように入力します。
tar -xf sqljdbc_<version>_enu.tar - パッケージがアンパックされたら、InstallationDirectory\Microsoft SQL Server JDBC Driver 3.0 \sqljdbc_<version>\<language>\help\default.htm を開いて JDBC ヘルプ システムを開きます。 JDBC ヘルプが Web ブラウザーに表示されます。
修正プログラムの置き換えに関する情報
この修正プログラムには、Microsoft SQL Server JDBC Driver バージョン 3.0 の以前のすべての修正プログラムが含まれています。
ファイル情報
この修正プログラムのグローバル バージョンには、次の表に示すファイル属性 (またはそれ以降のファイル属性) があります。 これらのファイルの日付と時刻は世界協定時 (UTC) で記載されています。 ファイル情報に表示される時刻は、ローカル時刻に変換されています。 UTC とローカル時刻との時差を確認するには、[コントロール パネル] の [日付と時刻] の [タイム ゾーン] タブを使用してください。
| ファイル名 | ファイルのバージョン | ファイル サイズ | 日付 | 時刻 | プラットフォーム |
|---|---|---|---|---|---|
| Sqljdbc.jar | 該当しない | 518,294 | 2011 年 12 月 8 日 | 16:05 | 該当しない |
| Sqljdbc4.jar | 該当しない | 537,566 | 2011 年 12 月 8 日 | 16:05 | 該当しない |
| Xa_install.sql | 該当しない | 37,12 | 2011 年 12 月 8 日 | 16:05 | 該当しない |
| Sqljdbc_xa.dll | 3.0.1301.203 | 253,744 | 2011 年 12 月 8 日 | 16:05 | IA-64 |
| Sqljdbc_xa.dll | 3.0.1301.203 | 131,376 | 2011 年 12 月 8 日 | 16:05 | x64 |
| Sqljdbc_xa.dll | 3.0.1301.203 | 102,192 | 2011 年 12 月 8 日 | 16:05 | x86 |
| Sqljdbc_auth.dll | 3.0.1301.203 | 175,408 | 2011 年 12 月 8 日 | 16:05 | IA-64 |
| Sqljdbc_auth.dll | 3.0.1301.203 | 87,344 | 2011 年 12 月 8 日 | 16:05 | x64 |
| Sqljdbc_auth.dll | 3.0.1301.203 | 69,936 | 2011 年 12 月 8 日 | 16:05 | x86 |
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。