SQL Server では、Time データ型には時間値が格納されますが、特定の表示形式は含まれません。 HH:MM:SS 形式で時刻値を抽出するには、DateTime フィールドを文字列に変換する必要があります。
CONVERT 関数を使用すると、次のように DateTime フィールドを目的の形式の文字列に変換できます。
<code class="language-sql">SELECT CONVERT(varchar(8), CAST([datetime] AS TIME), 108) AS [CSTTime]</code>
手順:
CONVERT
関数は、[datetime]
フィールドを文字列に変換します。 varchar(8)
パラメーターは、結果の文字列の長さを指定します (この場合は 8 文字)。 varchar
は実際に使用された文字数のみを保存するため、char
を使用する方が varchar
より効率的です。 CAST([datetime] AS TIME)
datetime
値を TIME
データ型に変換し、日付部分を削除します。 108
スタイル コードは、ミリ秒を無視して時間値を HH:MM:SS 形式に変換するように SQL Server に指示します。 例:
DateTime 値「2015-03-19 00:00:00.000」を指定すると、上記のクエリは「00:00:00」を返します。 datetime
に時刻情報が含まれている場合は、その時刻情報が返されることに注意してください。
技術的背景:
SQL Server は内部的に、時刻値を午前 0 時以降のクロック数を表す 4 バイトの整数として保存します。各ティックは 3.3 ミリ秒を表します。したがって、Time データ型自体には特定の表示形式がありません。
CAST 構文を使用して DateTime を Time に変換すると、結果の Time 値にはミリ秒が保持されます。 HH:MM:SS 形式の書式設定された文字列を取得するには、CONVERT 関数を使用する必要があります。 CAST
を使用して最初に値を TIME
型に変換し、次に CONVERT
を使用して出力をフォーマットすると、より明確で正確な変換結果が保証されます。
以上がSQL Server DateTime を HH:MM:SS 時刻形式に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。