1

私はこのクエリを持っています

WITH NumberedRows AS
(
    SELECT  Serial, 
            DateReceived, 
            DeviceLevel, 
            ROW_NUMBER() OVER (ORDER BY DateReceived) AS RowNumber
    FROM TBLReadings 
) 
SELECT *
FROM NumberedRows
WHERE RowNumber % 5 = 1 and Serial like '+447584996153'

過去7日間の日付の間を検索する必要があります。私は検索を知っています。

WHERE DateReceived BETWEEN 'blahblah' and 'blahblah'

しかし、機能は何ですか?日付を具体的に呼び出すために、さまざまな形式を試しました。

dd/mm/yyyy 00:00:00現在のデータは、日付を形式で取得します。

検索で日付の関数を正しく使用する方法がわかりません(これが、列名を表示するだけでデータが表示されないため、日付間を検索するときにデータを取得できない理由だと思います)

4

4 に答える 4

2

日付がDATEまたはDATETIMEデータ型の場合は、次を使用できます。

WHERE DateReceived >= '20120601'            --- at or after the 1st of June
  AND DateReceived < '20120608'             --- and before the 8th of June
于 2012-06-12T14:49:24.857 に答える
1

変換機能を使用して、時間比較を除外した日付を比較できます。

Select Convert(varchar(12),GetDate(),112)これは、日付をyyyyMMdd形式で返します

したがって、クエリの場合は次のようになります。WHERE Convert(varchar(12,DateReceived,112) BETWEEN Convert(varchar(12,DateFrom,112) and Convert(varchar(12,DateTo,112)

于 2012-06-12T14:44:54.877 に答える
1

日付値をパラメーターとしてクエリに渡すことを計画している場合は、.NETに時間のストリッピングを処理させることができます。

WITH NumberedRows AS
(
    SELECT  Serial, 
            DateReceived, 
            DeviceLevel, 
            ROW_NUMBER() OVER (ORDER BY DateReceived) AS RowNumber
    FROM TBLReadings 
    Where DateReceived >= @Date1
        And DateReceived < DateAdd(d,8,@Date1)
) 
SELECT *
FROM NumberedRows
WHERE RowNumber % 5 = 1 and Serial like '+447584996153'

日付値を渡す.NETコードでDateは、オブジェクトのプロパティを使用してDateTime、日付部分のみを渡すだけです。

myCommandVar.AddParameterWithValue( myDateVar.Date );

別の選択肢として、常に今日の日付を使用したいが、パラメーターを渡したくない場合は、次のようになります。

Where DateReceived >= DateAdd( d, DateDiff( d, 0, CURRENT_TIMESTAMP ), 0 )
        And DateReceived < DateAdd( d, DateDiff( d, 0, CURRENT_TIMESTAMP ), 8 )

このシナリオでは、日付0からの日数を計算し、その日数を0に加算することで、現在の日付と時刻から時間部分を削除しています。2番目の部分では、日付8から開始したことに注意してください。

于 2012-06-12T15:06:31.777 に答える
1

DATEADD関数を使用して、過去7日間のデータを取得してみてください。

WHERE DateReceived > DATEADD(day,-7, getutcdate())

また

WHERE DateReceived > DATEADD(day,-7, GETDATE())
于 2012-06-12T14:52:45.900 に答える