十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这里有一个前提,就是每个地方只有一次到件,一次发件,如果出现两次以上的到件或者发件,那么根据我写的sql只能取到最大值,也就是说只会有一条记录,这件要注意。如果存在两条以上,那么就要根据业务去判断了,或者在下面那条(2)语句加group的条件,或者用其他的函数(不用max)等等。要根据实际需求写sql,切忌生搬硬套。
成都创新互联主营巫山网站建设的网络公司,主营网站建设方案,app软件定制开发,巫山h5重庆小程序开发搭建,巫山网站营销推广欢迎巫山等地区企业咨询
(1)不知道你是什么版本的oracle,如果是11Gr2以上的,那么可以用pivot(具体的使用方法自己去找找吧,网上有很多,我只写你例子里的语句)
select * from table
pivot (max(时间) for 收发件 in ('发件' as 发件时间,'到件'as 到件时间));
(2)其他的方式 case when也可以,稍微麻烦一点。decode和case when类似。
select 省份,max(case when 收发件='到件' then 时间 end) 到件时间,max(case when 收发件='发件' then 时间 end) 发件时间 from table group by 省份
现在Oracle和MySQL都是一家公司的了,你上面的代码基本上在MySQL里面都没有问题,只是删除下面这样的内容即可:
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING;
COMMENT ON TABLE XKXT_XK_KCXX IS '课程信息表';
你执行中提示什么错误,看看错误说明,再修改相应的语句。
--以下三句,先从控件中获取值.
string _SSDY=txtSSDY.Text;
string _KSSJ=txtKSSJ.Text;
string _JSSJ=txtJSSJ.text;
--将变量值拼接入SQL语句
string sql=
"select * from paidan a,paidan_khzy b where a.khhm=b.khhm and b.ssdy= "+_SSDY+" and to_date(a.lrsj,'fxyyyy-mm-fxdd hh24:mi:ss') = to_date("+_KSSJ+",'yyyy-mm-dd hh24:mi:ss') and to_date(a.lrsj,'fxyyyy-mm-fxdd hh24:mi:ss') to_date( "+JSSJ+",‘yyyy-mm-dd hh24:mi:ss') order by id desc";
---------
当然你也可以不先赋值到变量,直接在值的位置拼接从控件取值.
这件事并不简单,有三个问题,一是我不知道你sql server的版本,2008以下的版本并没有LOB类型,可能需要用其他类型代替;二是sql server和oracle的lob类型定义不一样,如图,你可以看到varbinary(max)在oracle中可以容纳高达8TB,而在sql server只能容纳2GB,由于不知道你的数据多大,如果太大,你在oracle中lob类型的数据可能在sql server中不能用相应的类型.三是dbms_lob在sql server没有对应的函数.
而且就算这三个问题全部解决,也要把所有调用这函数的地方的代码看一遍,确认没有任何冲突才能移植.如果你觉得不是力所能及,建议你找专业人士解决.
TO_DATE格式(以时间:2007-11-02 13:45:25为例)
1、日期和字符转换函数用法(to_date,to_char)
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串
select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年
select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月
select to_char(sysdate,'dd') as nowDay from dual; //获取时间的日
select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时
select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分
select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒
2、字符串和时间互转
select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual
select to_char( to_date(222,'J'),'Jsp') from dual //显示Two Hundred Twenty-Two
扩展资料
date 转换为字符串:
to_char(日期,”转换格式” ) 即把给定的日期按照“转换格式”转换。
转换的格式:
表示year的:y 表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年。
表示month的:mm 用2位数字表示月;mon 用简写形式 比如11月或者nov ;month 用全称 比如11月或者november。
表示day的:dd 表示当月第几天;ddd表示当年第几天;dy 当周第几天 简写 比如星期五或者fri;day当周第几天全写。比如星期五或者friday。
表示hour的:hh 2位数表示小时 12进制; hh24 2位数表示小时 24小时。
表示minute的:mi 2位数表示分钟。
表示second的:ss 2位数表示秒60进制。
用execute immediate语句就可以执行动态sql,并且可以用参数。例如:execute immediate 'insert into dept values (:1, :2, :3)' using 50, l_depnam, l_loc;