oracle,mysql,sqlserver SQL

1. 6天以内的记录

Oracle:

select *
from WSSP_ORDER_MAIN 
where ROUND(TO_NUMBER(SYSDATE - ORDER_DATE_))<=6;

注:TO_NUMBER 转化为数字,此处将日期差转为为数字,并用round方法进行四舍五入。如果想要精确到分秒,直接乘以数字就行。

 

300秒以内的记录

select *
from WSSP_ORDER_MAIN
where ROUND(TO_NUMBER(SYSDATE - ORDER_DATE_)*24*60*60)<=300 );


MySQL:

select *
from wssp_order_main
where DATEDIFF(NOW(),ORDER_DATE_)<=6;

注:DATEDIFF() 函数返回两个日期之间的天数,比较级别到天。如果要精确到分秒,这个DATEDIFF()函数无法满足,需要用到TIMEDIFF()函数。

 

select *
from wssp_order_main
where TIME_TO_SEC(TIMEDIFF(NOW(),ORDER_DATE_))/60/60/24 <=6;

注:TIMEDIFF() 函数返回两个日期之间的time差值,如08:08:08。TIME_TO_SEC() 函数将time值转化为秒。

 

SQLServer:

select * 
from stone.WSSP_ORDER_MAIN 
where DateDiff(hh,ORDER_DATE_,getDate())<=6;

 

2. 日期与时间拼接成完整时间,并和当前日期比较

Oracle:

select T1.*
from WSSP_ORDER_MAIN t1
where to_date(CONCAT(CONCAT(to_char(T1.SAILING_DATE_,'yyyy-MM-dd'),' '),T1.SAILING_TIME_),'yyyy-mm-dd,hh24:mi:ss') <= SYSDATE;

注:to_char将日期转换成字符串,也是用CONCAT函数拼接字符串。最后用to_date将字符串转化为日期。

 

MySQL:

啥时候用到这条语句,当日期和时间分别存到2个字段,但需要合起来和当前日期比较

select t1.*
from wssp_order_main t1
where str_to_date(CONCAT(CONCAT(date_format(t1.SAILING_DATE_,'%Y-%m-%d'),' '),t1.SAILING_TIME_),'%Y-%m-%d %H:%i:%s') >= NOW();

注:date_format 将日期格式转化为字符串,目前我的time字段在数据库是字符串。前后都是字符串,再用CONCAT函数,拼接字符串。拼接好了,再用str_to_date将字符串转换为日期类型。

 

3.Oracle==查找记录中PLAN_BERTH_ID_ 重复的记录

SELECT * 
FROM TIC_TICKET 
WHERE PLAN_BERTH_ID_ IN (SELECT PLAN_BERTH_ID_ FROM TIC_TICKET GROUP BY PLAN_BERTH_ID_ HAVING COUNT(*)> 1) 

 

4.Oracle==向表中添加字段

alter table WSSP_ORDER_DETAIL
add TIC_TICKET_ID_ number(10);
 
5.SQLServer==剩余时间"XX天XX小时XX分"
<pre class="sql" name="code">select cast(floor(datediff(minute,时间1,时间2) / 1440) as varchar)+'天'+

       cast(floor((datediff(minute,时间1,时间2) % 1440)/60) as varchar)+'小时'+ 

       cast(((datediff(minute,时间1,时间2))-

           (floor(datediff(minute,时间1,时间2) / 1440) *1440)-

           (floor((datediff(minute,时间1,时间2) % 1440)/60)*60)) as varchar)+'分'

 from 表名

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值