海傢伙我想在SQL中取得前一小時的數據。以SQL小時數據取前一小時的數據
我發現這樣的事情
DATEPART(hh,GETDATE())-1 –>
但它也有一些問題,因爲我的日期格式爲24小時。當時間在00.00.00-00.59.59之間時,它將給出-ve值(-1)。我應該得到23的價值。有什麼建議麼?這是我做過什麼
DECLARE @hourlyaggregatedvolume smallint
DECLARE @hourlyaggregatedspeed smallint
DECLARE @hourlyaggregatedoccupancy float
DECLARE @hourlyaggregatedheadway float
DECLARE @trafficdatadate datetime
DECLARE @closeststationname nvarchar(100) = 'E100 1001'
DECLARE @accidentdate nvarchar(10) = '2014-02-17'
DECLARE @accidenttime nvarchar(10) = '01:10:00'
SELECT
@hourlyaggregatedvolume = aggregated_volume,
@hourlyaggregatedspeed =aggregated_speed,
@hourlyaggregatedheadway = aggregated_headway,
@hourlyaggregatedoccupancy = aggregated_occupancy,
@trafficdatadate = [date]
FROM dbo.traffic_data_aggregated_hourly
WHERE station = @closeststationname
AND CONVERT(DATE,[date]) = @accidentdate
AND period = CASE WHEN SUBSTRING (@accidenttime,1,2) - 1 = -1 THEN 23
ELSE SUBSTRING (@accidenttime,1,2) - 1
END
SELECT @hourlyaggregatedvolume,@hourlyaggregatedspeed,@hourlyaggregatedheadway
,@hourlyaggregatedoccupancy,@trafficdatadate
請發表表格結構。 –
你爲什麼不使用datediff提供lil樣本data.it不清楚。 – KumarHarsh