现在小弟正开发一个报表,需查询1月到12月之间的数据,现在的问题是:报表中的区间选项是字符型的1月、2月、3月……12月,不是年月日的那种日期格式,用between and 语句查1月到12月这种会出现问题,因为字符型排序是按1月、10月、11月、12月、2月、3月……这样来排序的,因而查出数据不准确。
现在数据库里都是这样的数据,请问有什么办法可以解决,用的是Oracle数据库。
注:前面加0的这种方法已考虑过,就是01月、02月这样,但是显示出来可能不是太好看,而且数据库里已有数据,不好修改,想问下有没有其他好的办法解决,谢谢!
在数据库理论中,关系模型和数据类型这两部分内容是正交的(参看《程序员修炼之道》第8节关于“正交性”的讨论),互不依赖。换言之,关系模型并不关心每个表的字段的数据类型是什么,是整数、字符串等基本类型也好,是组合类型、类等自定义类型也好,关系模型只要求每个字段是原子的。
在数据库理论中,数据类型又被称为域,但域是更为严格的定义。比如一个班级的学生个数和学生平均分可能都是int类型,但这是两个不同的域,“学生个数 * 学生平均分 = 学生总分”,但“学生个数 + 学生平均分”是没有意义的。目前的主流DBMS似乎尚未对域有很好的支持,但未来的情况可能会有所改变,而且,设计自定义类型也需要对这一问题有充分的认识。详见《深度探索关系数据库》第2章。
SQL动态语句的功能很强大,但是难以调试和维护(字符串拼接、无语法高亮)、效率低(难以重用执行计划)、安全性差(SQL注入)。除非功能上必须,否则尽量避免使用动态SQL。
假如真的需要使用动态SQL,使用sp_executesql的方式优于EXEC()的方式。因为前者有些时候可以重用执行计划而改善性能,而且允许传参,数据类型上更安全。
- System Functions:提供特定的表达式运算功能,如日期时间函数、字符串函数、数学函数、聚合函数等,是T-SQL编程必需的。
- System Views:包含了数据库元数据、系统内部运行数据等,如目录视图(用来代替SQL Server 2000中的系统表)、信息架构视图、动态管理视图等。
- System Procedures:查看系统信息、修改系统配置等,如目录存储过程、数据库引擎存储过程等。
掌握了基本的关系模型原理和DBMS的数据类型,还需要对DBMS提供的扩展功能有所了解,才能充分运用DBMS进行数据库开发。
SQL是说明式语言,但DBMS面对实际开发的需求,通常在SQL方言中都提供了过程式的扩展,包括(以T-SQL为例):
对于下面的IF/ELSE和WHILE,如果忽略了BEGIN ... END代码块,条件和循环将只对其后的第一个语句生效
我以前做过类似的东西,过程太繁琐了这里就不赘述了
究竟几个维度,取决于你要挖掘的方向
你的问题问的太广泛了,实在没法回答
如果刚上手可以借助一下第三方的软件会给你不少帮助,给你推荐一个逆火的iis日志分析器,我当时也用过这个
然后买本书好好的参考一下吧
老大让我做一个IIS日志的数据挖掘(每天大概有4000万的数据)
可以把IIS日志转换为事实表,里面大概是这些内容(时间,日期,URL,IP)
以前没干过,然后自己查了点资料自己订了几个维度(时间,日期,URL,IP)
统计不同时间段的访问量
统计不同时期的访问量
统计访问考前的URL
统计哪里的人比较多
有几个问题想咨询一下
1.维度表里面怎么定义,存储内容是什么
2.在ETL中事实表和维度表关联的过程
3.Analysis Services是如何分析的
当然如果谁能提供一些资料就更好了
来源:足球直播