小数秒が含まれる変換には、以下のルールが適用されます。
- ソースの文字列の小数秒の精度は、ターゲットの型で指定された小数秒の精度以下でなければなりません。
SELECT CAST('2002-01-01 12:30:25.44' AS TIMESTAMP(3));
小数秒がソースの文字列に表示されない場合、小数秒の精度は必ずターゲットのデータ型の小数秒の精度以下となります。これは精度の有効範囲が0~6であるからです(デフォルトは6)。
SELECT CAST('2002-01-01 12:30:25' AS TIMESTAMP(3));
- ターゲットのデータ型がFORMAT句で定義されている場合、小数秒精度の書式設定文字は、データ型によって指定された精度以上でなければなりません。
SELECT CAST('12-02-07 12:30:25' AS TIMESTAMP(3) FORMAT 'DD-MM-YYBHH:MI:SSDS(3)');
FORMAT句は、ターゲットのデータ型で小数秒の精度を指定していない場合、デフォルトの精度は6なので、小数秒の精度を6に指定する必要があります。
SELECT CAST('12-02-07 12h:15.12s:30m' AS TIMESTAMP FORMAT 'DD-MM-YYBHHh:SSDS(6)s:MIm');