1

SQL Server 2008 R2 に問題があります。列から取得HH:mmしたい。DATETIME2このステートメントを書くとき:

SELECT CONVERT(VARCHAR(5), getdate(), 8)

という完璧な結果が得られていますが11:19、時間を取得しようとすると:

SELECT (CONVERT(VARCHAR(5), '1900-01-01 01:10:00.0000000', 8))

私は結果を得ています1900が、必要01:10です。

このステートメントからどのように結果を得ることができますか? このような質問/回答が複数あることは知っていますが、私の質問に一致する回答が見つかりませんでした。

4

4 に答える 4

2

これを試して:

SELECT RIGHT('0' + CONVERT(VARCHAR(2), 
DATEPART(HOUR, '1900-01-01 01:10:00.0000000')), 2) hh, 
DATEPART(minute, '1900-01-01 01:10:00.0000000') mm

または

SELECT LEFT(CONVERT(TIME(0), '1900-01-01 01:10:00.0000000'), 2) hh , DATEPART(minute, '1900-01-01 01:10:00.0000000') mm

于 2016-11-12T06:01:11.377 に答える
0

多くの場合、24 時間形式の日時の長さは 19 であるため、次のように使用できます。

 SELECT RIGHT('0' + CAST(DATEPART(HOUR, Substring('1900-01-01 01:10:00.0000000',1,19)) AS VARCHAR(2)), 2) + ':' + CAST(DATEPART(minute, substring('1900-01-01 01:10:00.0000000',1,19)) AS VARCHAR(2)) HHmm

それが役に立てば幸い

于 2016-11-12T07:17:41.127 に答える
0

これを試してみてください。これがあなたが望むものだと思います。

これで答えが得られます: 1:10

SELECT CONVERT(VARCHAR(5),CONVERT(DATETIME,'1900-01-01 01:10:00.000'),8)

これを試すこともできます

select convert(VARCHAR,DATEPART(HOUR,'1900-01-01 01:10:00.0000000'))+':'+CONVERT(VARCHAR,DATEPART(MINUTE,'1900-01-01 01:10:00.0000000'))
于 2016-11-12T08:07:32.650 に答える