次の方法で共有


datetime データ型変換 (ODBC)

次の変換は、ODBC によって既に定義されているか、ODBC の一貫性がある拡張機能です。各プロバイダによって提供される変換は、プロバイダが管理するコミュニティによって決まるので、プロバイダ間で一貫性がないことがよくあります。角かっこで囲まれている値は省略可能です。

  • datetime 型の文字列の形式は 'yyyy-mm-dd[ hh:mm:ss[.9999999][ plus/minus hh:mm]]' です。

  • time 型の文字列の形式は 'hh:mm:ss[.9999999]' です。

  • date 型の文字列の形式は 'yyyy-mm-dd' です。

文字列からの変換では、空白文字やフィールドの幅を柔軟に処理できます。詳細については、「ODBC の日付/時刻の強化に対するデータ型のサポート」の「データ形式 : 文字列とリテラル」を参照してください。

一般的な変換規則を次に示します。

  • 時刻が存在しなくても受信側が時刻を格納できる場合、時刻は 0 に設定されます。

  • 日付が存在しなくても受信側が日付を格納できる場合、現在の日付が使用されます。

  • クライアントが使用しているデータ型にタイム ゾーンが存在しなくても、サーバーがタイム ゾーンを格納できる場合、日付はクライアントのタイム ゾーンで格納されます。これはサーバーの動作とは異なることに注意してください。

  • サーバーの型にタイム ゾーンが存在しなくても、クライアントの型にタイム ゾーンがある場合、時刻は UTC に変換されてからサーバーに格納されます。

  • 時刻が存在しても受信側が時刻を格納できない場合、時刻要素は無視されます。

  • 日付が存在しても受信側が日付を格納できない場合、日付要素は無視されます。

  • C データ型から SQL データ型に変換する際に秒または秒の小数部の切り捨てが発生すると、"Datetime フィールド オーバーフロー" というメッセージで SQLSTATE 22008 の診断レコードが生成されます。

  • SQL データ型から C データ型に変換する際に秒または秒の小数部の切り捨てが発生すると、"分数が切り捨てられました" というメッセージで SQLSTATE 01S07 の診断レコードが生成されます。

このセクションの内容

  • C から SQL への変換
    C 型から SQL Server の日付型または時刻型に変換する際に考慮する問題を示します。

  • SQL から C への変換
    SQL Server の日付型または時刻型から C 型に変換する際に考慮する問題を示します。

関連項目

概念