簡體   English   中英

通過從MySQL表采樣紀元來獲取記錄-選擇最近的值?

[英]Fetching records by sampling epoch from MySQL table - selecting nearest value?

我有一張桌子,有像

TimeStamp     |  Feild1      | Feild 2
--------------------------------------
1902909002    |  xyddtz      | 233447
1902901003    |  xytzff      | 233442
1902901105    |  xytzdd      | 233443
1902909007    |  xytzdd      | 233443
1902909909    |  xytsqz      | 233436

現在我想查詢它並獲取諸如timestamp = 1902909002大約OR 1902901003大約OR的記錄...我希望我記錄每個最近的那個時代的時間

我寫了一些東西:

 string sqlQuery = "SELECT TimeStamp, FwdHr, W FROM Meter_Data WHERE (TimeStamp <= "+timeSt[0].ToString();
                    for (int i = 1; i < timeSt.Count; i++)
                    {
                        sqlQuery = sqlQuery + " OR TimeStamp <= " +timeSt[i].ToString() ;
                    }

                    sqlQuery=sqlQuery+ ") AND MeterID = @meterID AND DeviceID = @deviceID ORDER BY TimeStamp";

這將返回null,並且如果date和date到目前為止具有較大的差異,則OR的單位為千。 任何機構都可以提出更好的方法嗎?

可以套用范圍嗎? 我的意思是這樣的:

var max=timeSt.Max();
var min=timeSt.Min();


var sqlString= string.Format(@"
SELECT 
    TimeStamp, 
    FwdHr, 
W 
    FROM 
    Meter_Data 
WHERE
    TimeStamp BETWEEN {0} AND {1}
    AND MeterID = @meterID AND DeviceID = @deviceID 
ORDER BY 
    TimeStamp",min,max);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM