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