2017-03-08 7 views
0

MSSQL 2014の日時データを12時間形式だけでAM/PMなしで表示したいと考えています。次のように私はインターネット上で示唆したすべてのものを試してみました:AM/PMのない時間を12時間形式に変換する

time_adm = convert(varchar(15), CAST(hadmlog.admdate AS TIME), 100), --//2:30PM 

は私もformat()を試してみましたが、それは「共通言語ランタイム(CLR)の実行は軽量プーリングの下で​​サポートされていません...など」エラー

を返します。
time_adm22 = FORMAT(CAST(hadmlog.admdate AS DATETIME),'hh:mm') --error 
+0

このお試しください: 'DECLAREの@tのVARCHAR(7)=(VARCHAR(15)に変換、CAST(GETDATE()ASあなたの場合、それは次のようになります: 'DECLARE @t varchar(7)= convert(varchar(15)、TIME)、100) SELECT SUBSTRING(@t、1、LEN(@t)-2)' – Sathish

+0

CAST(hadmlog.admdate AS TIME)、100) SELECT SUBSTRING(@t、1、LEN(@t)-2) ' – Sathish

答えて

0

あなたはこの

DECLARE @tbl TABLE(SomeDate DATETIME); 
INSERT INTO @tbl VALUES({ts'2017-01-01 07:13:52'}),({ts'2017-01-01 17:13:52'}) 

SELECT t.SomeDate 
     ,a.FormattedTime 
     ,LEFT(a.FormattedTime,PATINDEX('%[a,p]m',a.FormattedTime)-1) 
FROM @tbl AS t 
CROSS APPLY(SELECT CONVERT(VARCHAR(20),CAST(t.SomeDate AS TIME),100) AS FormattedTime) AS a 

結果のようなものを試してみてください

SomeDate     FormattedTime YourOutput 
2017-01-01 07:13:52.000 7:13AM   7:13 
2017-01-01 17:13:52.000 5:13PM   5:13 
0

あなたはAMとPMを除去するための文字列Replaceをやってみてください:

select hadmlog.admdate, 
    REPLACE(REPLACE(convert(varchar(7), CAST(hadmlog.admdate AS Time) , 100),'AM',''),'PM','') as Converted 
from hadmlog 
関連する問題