DateTime を時刻に変換
CAST を使用して DateTime フィールドを Time に変換すると、出力には秒やミリ秒の小数部分が含まれることが多く、これは期待どおりではない可能性があります。フィルタリングするか、正確な HH:MM:SS 形式に変換するには、SQL Server の時刻の内部表現を理解する必要があります。
時間の保存と形式
表示形式とは異なり、SQL Server の時刻は本質的に特定の形式で保存されるわけではありません。これは 8 バイトの整数で、最初の 4 バイトは日付を表し、残りの 4 バイトは午前 0 時からのティック数を表します。 1 ティックは 3.3 ミリ秒を表します。
したがって、SQL Server の時間値は、特定の形式ではなく整数値として存在します。
文字形式に変換
HH:MM:SS 形式を取得するには、CONVERT 関数を使用して文字型に変換する必要があります。
<code class="language-sql">SELECT CONVERT(char(10), [time], 108) as CSTTime</code>
説明
char(10)
は長さ 10 の文字列を指定します。 108
は、HH:MM:SS形式を指定するスタイルコードです。 この変換プロセスでは、時刻値を必要な HH:MM:SS 形式の文字列に変換します。
以上がSQL Server の DateTime フィールドを小数秒を使用せずに HH:MM:SS 時刻形式にキャストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。