C# 中使用 MySQL 数据库实现本日、本周、本月、本年数据总数统计
-
获取当前日期和时间:使用 C# 中的
DateTime
类获取当前日期时间信息。 -
构造 MySQL 查询语句:根据不同的时间范围构建 SQL 查询语句,并执行以获取数据总数。
使用 MySQL 数据库连接,并且使用了 MySql.Data
包进行操作:
using System;
using MySql.Data.MySqlClient;
public class Program
{
public static void Main()
{
string connStr = "server=localhost;user=root;database=yourdatabase;port=3306;password=yourpassword;";
MySqlConnection conn = new MySqlConnection(connStr);
conn.Open();
DateTime today = DateTime.Today;
DateTime startOfWeek = today.AddDays(-(int)today.DayOfWeek);
DateTime startOfMonth = new DateTime(today.Year, today.Month, 1);
DateTime startOfYear = new DateTime(today.Year, 1, 1);
int totalCountToday = GetRecordCount(conn, today, today);
int totalCountThisWeek = GetRecordCount(conn, startOfWeek, today);
int totalCountThisMonth = GetRecordCount(conn, startOfMonth, today);
int totalCountThisYear = GetRecordCount(conn, startOfYear, today);
Console.WriteLine($"今天的数据总数:{totalCountToday}");
Console.WriteLine($"本周的数据总数:{totalCountThisWeek}");
Console.WriteLine($"本月的数据总数:{totalCountThisMonth}");
Console.WriteLine($"本年的数据总数:{totalCountThisYear}");
conn.Close();
}
private static int GetRecordCount(MySqlConnection conn, DateTime startDate, DateTime endDate)
{
string query = $"SELECT COUNT(*) FROM YourTableName WHERE YourDateColumn >= @startDate AND YourDateColumn <= @endDate";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@startDate", startDate);
cmd.Parameters.AddWithValue("@endDate", endDate);
int count = Convert.ToInt32(cmd.ExecuteScalar());
return count;
}
}
- 替换
connStr
变量中的连接字符串为你的 MySQL 数据库连接信息。 - 替换
YourTableName
和YourDateColumn
为你的实际数据库表名和日期列名。 GetRecordCount
方法用于执行带参数的 SQL 查询,获取指定时间范围内的记录数。