long longBegin = d.Ticks;
long longEnd = d.AddDays(1).AddMilliseconds(-1).Ticks;
string sql = "SELECT * FROM tb WHERE TricksField BETWEEN @loginBegin AND @lengEnd";
SqlCommand cmd = new SqlCommand();
cmd.Parameters.Add("@loginBegin", DbType.Int64, 64);
cmd.Parameters.Add("@loginEnd", DbType.Int64, 64);
cmd.Parameters[0].Value = longBegin;
cmd.Parameters[1].Value = longEnd;
查找今天过生日的. 百万级的数据表,
可以在c#里生成两个参数,以存储过程,或传参的语句方式执行, 在 TicksField 上建立索引,效率效数量级提升
//***************************************
.NET Framework 类库
DateTime.Ticks 属性
此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00 以来已经过的时间的以 100 毫微秒
为间隔的间隔数。
如果确实,要用sql实现,那我们先借助前端程序得到几个数据。
C# code DateTime d = Convert.ToDateTime("1900-1-1");
DateTime d1 = Convert.ToDateTime("0001-1-1");
TimeSpan t = d - d1;
Response.Write("1900-1-1 . ticks:" +d.Ticks +"</br>" );
Response.Write("0001-1-1 . ticks:" + d1.Ticks + "</br>");
Response.Write(t.TotalMilliseconds.ToString());
综合下先建立表结构逻辑模型:
通过使用数据仓库建模思想建立星型模型:
1事实表
ID 主键
CRRQ_ID 日期ID
PLACE_ID 地点ID
XNAME_ID 姓名ID
XX 事实字段
2日期维表
CRRQ_ID 日期ID
CRRQ 日期
3地点维表
PLACE_ID 地点ID
PLACE 地点
4客户维表
XNAME_ID 姓名ID
XNAME 姓名
再利用DB2数据库的物理优化方法:
对事实表
1 数据库分区
2 表分区
3 建立MDC
4 建立 MQT
5 对联合主键建立位图索引
4亿条数据的表在数据仓库中只能算小表
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端