Transaction
というテーブルがあります。そこにTimeStamp
データ型の列Time
が見つかりました。SQL Serverで時間をソートする方法は?
のでデータは、私は例
`2015-01-17 08:12:48.000` `8 AM`
`2015-01-17 14:12:48.000` `2 PM`
について8 am
のように表示したい2015-01-17 08:12:48.000
のように見えることだろう今私は、上記のような結果を得ました。これは私の結果です
Hour
----
01 PM
02 PM
04 PM
05 PM
06 PM
07 AM
07 PM
08 AM
09 AM
10 AM
11 AM
12 PM
これは上記の結果のクエリです。
SELECT
FORMAT(CAST(Time as datetime),'hh tt') hour,
COUNT(TransactionNumber) Total_Transaction,
SUM(Total) salesCost
FROM
[HQMatajer].[dbo].[Transaction]
WHERE
StoreID = '1001'
AND YEAR(Time) = '2015'
AND MONTH(Time) = '01'
AND DAY(Time) = '15'
GROUP BY
FORMAT(CAST(Time as datetime),'hh tt')`
今、時間を並べ替える必要があります。
この中で結果として得られる, convert(varchar(2), [time], 8)
order by convert(varchar(2), [time], 8)
:それはあなたの文の最後にこれを追加すること
07 AM
08 AM
09 AM
10 AM
11 AM
12 PM
01 PM
02 PM
.
.
07 PM
おかげ
SQL Serverの 'timestamp'データ型は、**日付と時刻とはまったく関係ありません** - 単純なサーバーベースの**バイナリカウンタ**です。 .. –
私は*タイムスタンプではなく、ここでは 'datetime'を意味します。 'timestamp'を使用している場合、値は意味がありません(注意:技術的に' timestamp'は時代遅れです - これは 'rowversion'のエイリアスになりました - タイプはこの混乱を避けるために名前が変更されました) –