Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2632215
  • 博文数量: 315
  • 博客积分: 3901
  • 博客等级: 少校
  • 技术积分: 3640
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-08 15:32
个人简介

知乎:https://www.zhihu.com/people/monkey.d.luffy Android高级开发交流群2: 752871516

文章分类

全部博文(315)

文章存档

2019年(2)

2018年(1)

2016年(7)

2015年(32)

2014年(39)

2013年(109)

2012年(81)

2011年(44)

分类: Oracle

2012-06-01 12:20:49

    之前说过了,不想说太多工作的事情,不过其中学到了点数据库的知识,觉得还是挺有意思和用处的,因此想记录下,感觉很多东西都是数据库来存储的,否则我们如何去寻找我们的历史呢?So 还是学习下数据库好点,当然如果最后从事的是底层编程或者其他与数据不太相关的应用开发,则不需要太多或者太高深的数据库知识,不过学习了,可以帮助朋友、同学等等。恰好,前几天就帮助朋友调试一个android程序,以前懂点java,了解过android,所以还算顺利的调试好了!所以很多时候就不知道会用到数据库知识呢!!!
   下面就是一些操作啦,当然是oracle的,这点和mysql之类的不一样,在oracle中需要自己创建序列之类的,而且日期操作有些不一样,具体看资料啦,我也是学了点皮毛,哈哈哈!

----文档类别管理表   

create table ElecDoc_Class(

       Class_ID number,--主键

       Class_Name nvarchar2(50),

       ParentClass_ID number,

       Class_IsUSED number,

       CREATED_BY varchar2(20),

       CREATED_TIME date,

       LAST_EDIT_BY varchar2(20),

       LAST_EDIT_TIME date

);

--Class_IsUSED 删除目录时候不真的删除,只是修改使用属性

--创建序列

CREATE SEQUENCE Class_ID

    MINVALUE 1000

    START WITH 1000

    INCREMENT BY 1

    CACHE 2;

--删除序列


drop sequence Class_ID

--查询

select * from ElecDoc_Class t;

select Class_ID, Class_Name, ParentClass_ID, Class_IsUSED from ElecDoc_Class

--更新

select * from Elecdoc_Class t for update;

--删除条目

delete ElecDoc_Class where Class_ID=1002

--清空表

TRUNCATE TABLE ElecDoc_Class;

 

--删除表

drop table ElecDoc_Class;

--联合查询
select t.name, v.code from ElecDoc_Class t,  ElecDoc_File v where t.id=v.id; 

--当然,还有很多关于数据库的操作,没事还是应该好好学学的!这些sql语句只是皮毛而已。

--在oracle中有许多对时间的操作,可能不同的编程工具不一样,在vs中,在进行to_date的时候,第二个格式参数如果写成yyyy-MM-dd HH24:mm:ss就会出错,至少在.net环境下是如此;但是改成yyyy-MM-dd HH24:mi:ss就可以的!反正我做模块的时候很多时候花在时间转换上,看来数据库也不是我想的那么简单了!

时间相关SQL1:

SqlDate = string.Format("INSERT INTO SCH_SIGN_RECORD( Login_id, Personnel_id, Name, Department_id, Position_id, On_duty_time, Client_IP) values ( '{0}', {1}, '{2}', {3}, {4}, to_date('{5}', 'yyyy-MM-dd HH24:mi:ss'), '{6}')",

                                                                                                                                    new string[7]

{                                                                                                  sdd.Tables[0].Rows[0]["Login_id"].ToString(),                                                  sdd.Tables[0].Rows[0]["Personnel_id"].ToString(),                                              sdd.Tables[0].Rows[0]["Name"].ToString(),                                                      sdd.Tables[0].Rows[0]["Department_id"].ToString(),                                            sdd.Tables[0].Rows[0]["Position_id"].ToString(),

    SignInTime.ToString(),

    ip,

});

SignInTime是DateTime类型,很多东西都可以以此类推,这才是学习的方法!

时间相关SQL2:

string SqlUpdate = string.Format("UPDATE SCH_SIGN_RECORD set Off_duty_time=to_date('{0}', 'yyyy-MM-dd HH24:mi:ss') where Login_id='{1}' and to_char(On_duty_time, 'yyyy/MM/dd')=to_char(sysdate, 'yyyy/MM/dd') and Off_duty_time is null",

                                                                                                                                       new string[2]

                                                                                                                                       {

                                                                                                                                           SignOutTime.ToString(),

                                                                                                                                           UserId,

                                                                                                                                       });      


                        

ASP.Net中时间的一些操作(a little)

计算时间差:

///

        /// 时间差计算函数的重载

        ///

        ///

        private string DateDiff()

        {

            DateTime DateTime2 = Convert.ToDateTime(Label1.Text.ToString());

 

            DateTime DateTime1 = Convert.ToDateTime(Label2.Text.ToString());

 

            string dateDiff = null;

            try

            {

                TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);

                TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);

                TimeSpan ts = ts1.Subtract(ts2).Duration();

 

                dateDiff = ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "";

            }

            catch

            {

 

            }

 

            return dateDiff;

        }


获取客户端IP:

     //获取客户端IP

            string ip = string.Empty;

            if (Context.Request.ServerVariables["HTTP_VIA"] != null) //走协议

            {

                ip = Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();

            }

            else //不走协议,得不到客户端IP

            {

                ip = Context.Request.ServerVariables["REMOTE_ADDR"].ToString();

            }

还有一些FTP的一些东西,这里就不做笔记,意思不是很大。还是要保密的!虽然不是什么高深的东西,嘻嘻,开玩笑的啦!

阅读(1744) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~