2016-05-21 17 views
0

13:05:33のようにデータベースに保存された01:05:33 PMのような形式に時刻を変換したいとします。そのための質問は何でしょうか。私は基本的に12 hour formatを取得したいと思います。データベースでは、24 hrに保存されます。フィールドはtimeです。SQL Serverで時間をhh:mm:ss ttに変換する方法

FORMAT機能を使用しましたが、FORMAT()機能が無効です。

+0

SQL SERVER 2012で導入されます。可能であれば、SQLクエリ自体ではなく、クライアントアプリケーションでデータの書式を設定してください。 – Heinzi

+0

SQL Serverは 'time'をフォーマットせずにバイナリ形式で保存します。値を書式設定された文字列に変換するのがより簡単になるように、T_SQLの「FORMAT」関数がSQL Server 2012に導入されましたが、SQL Serverではなくプレゼンテーションレイヤでプレゼンテーション用にデータをフォーマットする方が適しています。 –

+0

[SQLで12時間形式に時刻を変換する]の可能な複製(http://stackoverflow.com/questions/4745527/converting-a-time-into-12-hour-format-in-sql) –

答えて

0

CASTの完全なヘルプと変換する関数はhereです:

あなたの具体的な例を使用して、これは動作するはずです:

DECLARE @testTime time; 

SET @testTime = '13:05:33'; 

SELECT CONVERT(varchar(20), @testTime, 130); 
+0

編集を参照してください。私は12時間形式が欲しい。 – DhavalR

+0

最後の番号を間違えて入力してください。主な結果を編集する。 – colossus

+0

3番目の引数を130に変更しました。これはミリ秒単位で表示されますが、12時間表示されます。 – colossus

0

使用Convert機能109

declare @time time ='13:05:33' 
select convert(varchar(20),@time,109) 

スタイル結果:1:05:33.0000000PM

注:FORMAT機能は、SQL Serverの書式設定関数は非常に限られている

関連する問題