SQL Server 2008を使用して、2回の間に発生したタイムスパンを秒単位で計算します。TSQL - クエリの日付計算を計算し、値を設定しますか?
開始日は、特定のIDが存在する(フィルタが真である)最後の出現のタイムスタンプで、そのタイムスタンプレコードから時刻を取得し、現在の処理時間と戻り値に対してDATEDIFF()を実行します@LastEventTimespanという値を秒単位で返します。
DECLARE @CurrentProcessTime DATETIME
DECLARE @LastEventTimespan DATETIME
SET @CurrentProcessTime = GetDate()
-- find the timespan since the last session event
-- DATEDIFF (datepart , startdate , enddate)
SELECT MAX(PageVisitEventID) AS LastPageVisitEventID, @LastEventTimespan = DATEDIFF(second , DateAdded , @CurrentProcessTime)
FROM PageVisitEvents
WHERE UserID = @UserID
GROUP BY LastPageVisitEventID
私はそれに応じてフィルタおよびプロセスのMAX IDを取得しますが、@LastEventTimespanを設定することができませんでした、しかし、データ検索を行う際に値を代入しようとすると、ノーノーではありません考え出し。
どうすればこの問題を回避できますか?
ありがとうございました。
質問は間違っています。申し訳ありません。 @LastEventTimespanで何をする予定ですか? GROUP BYのために複数の行があることを考えれば、それは行のどれでも許されていない可能性もあるので意味がありません。ただし、行単位で計算する場合は、GROUP BYを使用する必要があります。とにかくあなたのMAXedカラムでGROUP BYを実行しないと、状況が悪くなります – gbn