0

現在の時刻からのみ時間の値が必要です

それが4:31:13の場合のように、 4つだけが必要で、それも12時間形式にする必要があります..

私を助けてください...

4

6 に答える 6

2

SELECT 
case when DATEPART(hh, time) > 12
then DATEPART(hh, time) - 12 
else DATEPART(hh, time) end as hour
from time;

サンプルフィドル

于 2013-05-07T11:05:39.443 に答える
1
SELECT (DATEPART(HOUR, GETDATE()) + 11) % 12 + 1

午前 1 時に、次の値が返されます。

1 + 11 = 12; 12 % 12 = 0; 0 + 1 = 1

午後 1 時 (24 時間形式の 13:00) には、次の情報が表示されます。

13 + 11 = 24; 24 % 12 = 0; 0 + 1 = 1

同様に、午前 2 時と午後 2 時 (14:00):

 2 + 11 = 13; 13 % 12 = 1; 1 + 1 = 2
14 + 11 = 25; 25 % 12 = 1; 1 + 1 = 2

午前11時と午後11時まで。午前 12 時 (0:00) と午後 12 時 (12:00) では、次のようになります。

 0 + 11 = 11; 11 % 12 = 11; 11 + 1 = 12
12 + 11 = 23; 23 % 12 = 11; 11 + 1 = 12
于 2013-05-07T12:48:57.690 に答える
1

これにより、午前 12 時と午後 12 時も正しく処理されます。

select case datepart(hh, getdate()) 
    when  0 then 12 
    when 12 then 12 
    else datepart(hh, getdate()) % 12 
    end;
于 2013-05-07T11:17:51.047 に答える
0

どのデータベース エンジンを使用しているかはわかりませんが、PostgreSQL では次のことができます。

select to_char(current_timestamp, 'HH12');
于 2013-05-07T11:03:28.133 に答える