Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL リファレンス » SQL データ型 » データ型の比較

 

日付と時刻の比較

次の表に、特定のデータ型を日付、時刻、または日付/時刻のデータ型と比較したときの暗黙の変換をまとめます。

データ型 データ型 変換
CHAR DATE CHAR は TIMESTAMP にキャストされ、DATE は TIMESTAMP にキャストされる
CHAR TIME CHAR は TIME にキャストされる
CHAR TIMESTAMP CHAR は TIMESTAMP にキャストされる
CHAR TIMESTAMP WITH TIME ZONE CHAR は TIMESTAMP WITH TIME ZONE にキャストされる
DATE TIME 無効
DATE TIMESTAMP DATE は TIMESTAMP にキャストされる
DATE TIMESTAMP WITH TIME ZONE DATE は TIMESTAMP WITH TIME ZONE にキャストされる
DATE SMALLINT、INTEGER、BIGINT、NUMERIC SMALLINT、INTEGER、BIGINT、NUMERIC の値は日付文字列として扱われ、TIMESTAMP にキャストされる。DATE は TIMESTAMP にキャストされる
DATE REAL、FLOAT、DOUBLE REAL、FLOAT、DOUBLE は 0000-02-29 から経過した日数として扱われ、TIMESTAMP にキャストされる。DATE は TIMESTAMP にキャストされる
TIME TIMESTAMP TIMESTAMP は TIME にキャストされる
TIME TIMESTAMP WITH TIME ZONE 無効
TIMESTAMP TIMESTAMP WITH TIME ZONE TIMESTAMP は TIMESTAMP WITH TIME ZONE にキャストされる
TIMESTAMP SMALLINT、INTEGER、BIGINT、NUMERIC SMALLINT、INTEGER、BIGINT、NUMERIC の値は日付文字列として扱われ、TIMESTAMP にキャストされる
TIMESTAMP REAL、FLOAT、DOUBLE REAL、FLOAT、DOUBLE は 0000-02-29 から経過した日数として扱われ、TIMESTAMP にキャストされる

これ以降では、前述の表で示された情報をさらに詳しく説明しています。

  1. データ型 TIME の値に比較できるのは、データ型 TIME、TIMESTAMP、CHAR の値だけです。それ以外のデータ型の値との比較は、変換エラーになります。時間値と別のデータ型の値を比較するときには、比較データ型は TIME になります。

  2. TIMESTAMP、SMALLINT、INTEGER、BIGINT、NUMERIC、REAL、FLOAT、DOUBLE の値を DATE の値と比較するとき、比較データ型は常に TIMESTAMP になります。

  3. TIMESTAMP WITH TIME ZONE 値を DATE 値と比較するとき、比較データ型は TIMESTAMP WITH TIME ZONE になります。

  4. 時間値が TIMESTAMP にキャストされると、結果は、現在の日付と時間値を組み合わせたかたちになります。

  5. データ型 SMALLINT、INTEGER、BIGINT、NUMERIC の正確な数値は、日付値に変換できます。変換は、数字を文字列として扱うことで実行されます。たとえば、整数値 20100401 は 2010 年 4 月 1 日を表します。

  6. 符号なしの正確な数値データ型である BIT、TINYINT、UNSIGNED SMALLINT、UNSIGNED INTEGER、UNSIGNED BIGINT は、日付値には変換できません。

  7. 概数値データ型である REAL、FLOAT、DOUBLE は、架空の日付 0000-02-29 から経過した日数として数値を扱うことで日付に変換できます。たとえば、307 は 0001-01-01 を表し、734169 は 2010-04-01 を表します。

 参照