2016-04-28 14 views
0

時間ディメンション表を作成するために使用しているスクリプトがあり、12時間形式の列が必要です。 MM:SS形式で、私はこのことを知っているSQLの時刻を12時間形式に変換する

[FullTime]はHHでTIMEフィールドを含む列である

SELECT CONVERT(varchar(15),[FullTime],100) 

の線に沿って何かをすることによって行うことができます。

しかし、この結果は2:30pmとなり、2:30:47PMとなりますが、これには秒が含まれています。

私は部分文字列などを使用してこれを構築できると知っていますが、それを行うためのよりきれいな方法があるかどうか疑問に思いました。

おかげ

+0

'convert'で100の代わりに120または121を使用します。もっと詳しい情報はこちらhttps://msdn.microsoft.com/en-us/library/ms187928.aspx – gofr1

+0

これを試してください。SELECT CONVERT(VARCHAR、GETDATE()、9) ' –

答えて

0
SELECT GETDATE() 'Today', 
     CONVERT(VARCHAR(8), [FullTime], 108) 'hh:mi:ss' 

Taken from here

これはあなたがシーク時間値が続く列 '今日' を与えるには、 'HH:MI:SS' という

+0

設定が間違っているかどうかはわかりませんが、これはそれは24時間形式で表示されます。つまり、1pmは1ではなく13となっています。 –

0
Declare @tstTime datetime 
set @tstTime = GetDate() 

Select 
@tstTime 
,CONCAT(SUBSTRING(CONVERT(varchar(26), @tstTime, 109),1,20),RIGHT(CONVERT(varchar(26), @tstTime, 109),2)) 
+0

ありがとうございますが、24時間形式で表示されます。私は12時間形式で表示します。つまり、過去2日の午後2時は2:05 :00PM –

+0

Gotcha ...解決策を改訂しました。あなたが正確にしたいもののための特定のフォーマット番号を見なかったので、私は文字列関数でそれを構築しなければなりませんでした –

0

をも持っている場合ミリ秒は問題ではありません。使用可能です

SELECT CONVERT(VARCHAR, [FullTime], 109) 
関連する問題