3

夜6時と朝6時以降のレコード数を数える方法は?

これは午後12時まで機能します。

SELECT distinct count(barcode) c 
FROM table1 
where DAY(timestamp) = DAY(GETDATE())
  AND MONTH(timestamp) = MONTH(GETDATE())
  AND YEAR(timestamp) = YEAR(GETDATE())
  AND datepart(hh,timestamp) >= 18 
  AND datepart(hh,timestamp) >= 6;
4

3 に答える 3

1

物事を日ごとに数えようとしているが、1 日を真夜中ではなく午後 6 時に開始する場合は、時間にオフセットを追加するだけです。

select cast(timestamp + 0.25 as date) as theday, count(barcode)
from table1
group by cast(timestamp + 0.25 as date)
order by theday desc;

午後6時のカウントをしたい場合。- 午前6時。複数日:

select cast(timestamp + 0.25 as date) as theday, count(barcode)
from table1
where datepart(hh, timestamp) in (18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 5)
group by cast(timestamp + 0.25 as date)
order by theday desc;

最近の日については、次のことができます。

select top 1 cast(timestamp + 0.25 as date) as theday, count(barcode)
from table1
where datepart(hh, timestamp) in (18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 5)
group by cast(timestamp + 0.25 as date)
order by theday desc;
于 2013-03-19T17:49:50.233 に答える
0

これはどう?

ここで、datefunction(timestamp)>=getdate()-1 および (datepart(hh,timestamp)>=18 または datepart(hh,timestamp)<=6)

ここで、datefunction は日時を日付に変換します

于 2013-03-19T17:11:31.290 に答える