oracle,mysql,sqlserver SQL
2015-03-31 14:26
239 查看
1. 6天以内的记录
Oracle:
注:TO_NUMBER 转化为数字,此处将日期差转为为数字,并用round方法进行四舍五入。如果想要精确到分秒,直接乘以数字就行。
300秒以内的记录
MySQL:
注:DATEDIFF() 函数返回两个日期之间的天数,比较级别到天。如果要精确到分秒,这个DATEDIFF()函数无法满足,需要用到TIMEDIFF()函数。
注:TIMEDIFF() 函数返回两个日期之间的time差值,如08:08:08。TIME_TO_SEC() 函数将time值转化为秒。
SQLServer:
2. 日期与时间拼接成完整时间,并和当前日期比较
Oracle:
注:to_char将日期转换成字符串,也是用CONCAT函数拼接字符串。最后用to_date将字符串转化为日期。
MySQL:
啥时候用到这条语句,当日期和时间分别存到2个字段,但需要合起来和当前日期比较
注:date_format 将日期格式转化为字符串,目前我的time字段在数据库是字符串。前后都是字符串,再用CONCAT函数,拼接字符串。拼接好了,再用str_to_date将字符串转换为日期类型。
3.Oracle==查找记录中PLAN_BERTH_ID_ 重复的记录
4.Oracle==向表中添加字段
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_ H***ING 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 表名
相关文章推荐
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)
- 在Oracle、MySQL、MS SQL Server中创建自动增长字段
- ibatis like mysql oracle sqlserver db2
- MySql Oracle SqlServer三大数据库的数据类型列表
- Professional ADO.NET 2: Programming with SQL Server 2005, Oracle, and MySQL by Wallace B. McClure
- [数据库测试]强烈推荐一个python ODBC数据源插件,可支持Oracle,Db2,Mysql,Sql-server以及各种数据库版本,附例子和测试程序
- MySQL、Oracle、MS SQLserver限制查询所返回的行数
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)
- 在Oracle、MySQL、MS SQL Server中创建自动增长字段
- 完全jdbc操作 mysql Oracle sqlserver 链接类 不指定
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)
- MySQL / SQL Server / Oracle / MS Access的sql语句联系区别总结
- 分页显示问题(jsp/sqlserver/mysql/oracle)
- SQL查询前10条记录(SqlServer/mysql/oracle/sybase)[语法分析]
- [数据库测试]强烈推荐一个python ODBC数据源插件,可支持Oracle,Db2,Mysql,Sql-server以及各种数据库版本,附例子和测试程序
- 在Oracle、MySQL、MS SQL Server中查询指定数目的记录
- Connecting to databases like Mysql, SQL Server or Oracle on J2ME devices
- MySQL / SQL Server / Oracle / MS Access的sql语句联系区别总结
- Oracle/Sqlserver/MySQL三种数据库选取第m至第n行记录(zt)
- SQL查询前10条记录(SqlServer/mysql/oracle/sybase)[语法分析] (转)