簡體   English   中英

獲取系統日期當前時間的 COUNT 個數據

[英]Get COUNT of data at the current hour of system date

我在 Access 中有一個數據表數據庫表 DateTimeLog 具有日期/時間數據類型,而其他 rest 是字符串。

我需要使用指定的 ModelLog 獲取系統日期最后一小時的數據總行數。 但是我想不出使用 MS Access 的正確查詢結構,因為我對 MS Access 很陌生。

下面顯示了我如何插入數據:

  DateTime now = DateTime.Now;
  var today = now.ToString("g");
  DateTime d = DateTime.Parse(today);

  const string sql = @"INSERT INTO timer(DateTimeLog, ShiftLog, CTLog, WorkcellLog, ModelLog, StationLog)VALUES(@d, @shift, @ct, @wc, @wm, @ws)";
        OleDbCommand cmd = new OleDbCommand(sql, connection);

        cmd.Parameters.Add("@d", OleDbType.DBTimeStamp).Value = d;
        cmd.Parameters.Add("@shift", OleDbType.VarChar).Value = shiftlb.Text;
        cmd.Parameters.Add("@ct", OleDbType.VarChar).Value = timerlb.Text;
        cmd.Parameters.Add("@wc", OleDbType.VarChar).Value = wclb.Text;
        cmd.Parameters.Add("@wm", OleDbType.VarChar).Value = mlb.Text;
        cmd.Parameters.Add("@ws", OleDbType.VarChar).Value = slb.Text;

try
{}
catch(exception e)
{}

好的,所以您清楚地知道如何使用參數運行數據庫查詢,您只需將該查詢作為ExecuteScalar運行,將結果轉換為 int

SELECT COUNT(*) FROM timer WHERE dateTimeLog >= @d

然后將您的 d 參數設置為一小時前

cmd.Parameters.Add("@d", OleDbType.Date).Value = DateTime.Now.AddHours(-1);

旁注我建議不要通過字符串來回跳,只是為了減少時間的秒數。 而是考慮:

var d = DateTime.Now;
d = d.AddTicks( -(d.Ticks % (60*TimeSpan.TicksPerSecond)));

或者可能

var d = DateTime.Now;
d = d.AddMilliseconds(-d.Milliseconds).AddSeconds(-d.Seconds);

我發現了另一種在同一小時內獲取數據數量的方法。 創建兩個新列,HourID 和 TodayDate 分別代表 24 小時格式的當前小時和今天的日期。 相應地插入數據。

獲取數據計數:

const string sql = @"SELECT COUNT(*) FROM timer WHERE HourID = @h AND TodayDate = @td AND ModelLog = @m";
        OleDbCommand cmd = new OleDbCommand(sql, connection);

        cmd.Parameters.Add("@h", OleDbType.VarWChar).Value = DateTime.Now.ToString("%H");
        cmd.Parameters.Add("@td", OleDbType.VarWChar).Value = DateTime.Now.ToShortDateString();
        cmd.Parameters.Add("@m", OleDbType.VarWChar).Value = mlb.Text;

暫無
暫無

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

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