現在の時刻からのみ時間の値が必要です
それが4:31:13の場合のように、 4つだけが必要で、それも12時間形式にする必要があります..
私を助けてください...
現在の時刻からのみ時間の値が必要です
それが4:31:13の場合のように、 4つだけが必要で、それも12時間形式にする必要があります..
私を助けてください...
SELECT
case when DATEPART(hh, time) > 12
then DATEPART(hh, time) - 12
else DATEPART(hh, time) end as hour
from time;
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
これにより、午前 12 時と午後 12 時も正しく処理されます。
select case datepart(hh, getdate())
when 0 then 12
when 12 then 12
else datepart(hh, getdate()) % 12
end;
どのデータベース エンジンを使用しているかはわかりませんが、PostgreSQL では次のことができます。
select to_char(current_timestamp, 'HH12');