1

次のようなクエリがあります。

SELECT CONVERT(VARCHAR, getdate(), 100) AS TwelveHH

上記のクエリの出力はSep 26 2012 6:02PM& i want to get the Hours from the above query means, i will use the query like,

SELECT RIGHT(CONVERT(VARCHAR, getdate(), 100), 7) AS getTime

上記のクエリの出力は6:02PM.

しかし、私は-フォーマットのような秒で出力したい。6:02:19PM(hh:mm:ss)

hh:mm:ss形式を取得するにはどうすればよいですか?

4

2 に答える 2

5

数年前、私はこの便利なガイドを書きましたが、これは今でも役に立ちます。主な理由は、さまざまなスタイル番号のすべてが何を意味するのかを覚える方法がないためです。

SELECT LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11));

私のタイムゾーンでは、これは次を返します:

9:12:55 AM

これはまさにあなたが望むものではありません-使用できます。REPLACEまたはSTUFF、そのスペースを削除することが本当に重要な場合。例えば

SELECT REPLACE(LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), ' ', '');

SQL Server 2012 では、これをより簡単に行うことができます。C# とのパリティを使用してフォーマットできます。

SELECT FORMAT(CURRENT_TIMESTAMP, 'h:mm:ss tt');

EDIT以下のコメントの新しい要件と変更された要件に基づいています。

SELECT CONVERT(CHAR(11), CURRENT_TIMESTAMP, 109)
 + ' ' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11));

結果:

Sep 26 2012 10:03:52 AM
于 2012-09-26T13:13:16.377 に答える
2

これを行う必要があります:

SELECT CONVERT(VARCHAR(10),GETDATE(),108) AS getTime
于 2012-09-26T13:00:37.673 に答える