0

現在の時刻で 5 分ごとにデータベースを更新するクライアント アプリケーションがあり、今回は別の VB アプリケーションの最後のアクティブなテーブルとして出力したいと考えています。

mysql の時間については知っていますが、それを使用してクライアントが最後にアクティブだった時間を表示する方法がよくわかりません。

私は周りを見回して、mysqlの時間についていくつか見つけましたが、完全には理解していません。

これが役立つ場合は、「クライアント名」と「最後のアクティブ」を使用して結果を ListView に配置します。データベースに接続して情報を取得する方法は既に知っています。

ありがとうございました。

4

1 に答える 1

0

収納には を使用することをお勧めしDATETIMEます。データ型は、単一のTIME「時刻」または期間に制限されています。確かに、時刻を探していますが、「最終アクティブ」時刻を計算するには、日付を添付する必要があります。次の「Last Active」値を考慮してください (24 時間時計を使用)。

  • 3/26/2013 at 17:00:00<--これには最大時間 (午後 5 時) がありますが...
  • 3/27/2013 at 08:15:00<-- ...次の日に発生するため、これが最新の時間です

つまり、時間を並べ替えるには日付が必要です。

MySQLDATETIMEデータ型は VB.NET でサポートされているはずですが、この 2 つを一緒に使用したことがないため、保証できません。日付の時間部分だけを照会して報告するには、たくさんのオプションがあります。ここに2つあります:

  1. MySQL から日付/時刻全体をクエリし、それをSystem.DateTime値として VB.NET に返します。DateTime.ToStringVB.NET では、時間コンポーネントのみを表示するようにフォーマットできます。MySQL クエリは次のようになります。

    SELECT ClientName, MAX(LastActive) AS LastActiveDateTime
    FROM your_table
    GROUP BY ClientName
    
  2. StringMySQL で時刻をフォーマットし、 VB.NETに として返します。VB.NET では、文字列をそのまま表示するだけです。MySQL クエリは次のようになります。

    SELECT ClientName, DATE_FORMAT(MAX(LastActive), '%r') AS LastActiveTime
    FROM your_table
    GROUP BY ClientName
    

上記のクエリの形式コード%rは、AM/PM を含む 12 時間形式で時刻を返します (例: ) 07:55:29 PM19:55:2924 時間形式 ( )を返すには、%T代わりに を使用します。

于 2013-03-28T00:16:42.457 に答える