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 查询,获取指定时间范围内的记录数。