--生成模拟数据
DROP TABLE t PURGE;
CREATE TABLE t AS
(SELECT TRUNC(SYSDATE+LEVEL) 日期,
FROM DUAL
--查询
SELECT MIN(日期) 开始日期, MAX(日期) 结束日期, COUNT(*) 连续天数
FROM (SELECT 生产时间,
日期,
ROW_NUMBER() OVER(ORDER BY 日期) 序号,
COUNT(1) OVER(PARTITION BY 生产时间 ORDER BY 日期) 按生产时间分组小计
FROM t)
WHERE 生产时间 = 0
GROUP BY 生产时间, 序号 - 按生产时间分组小计
HAVING COUNT(*) 1
ORDER BY 1;
Oracle中如何获取系统当前时间
ORACLE里获取一个时间的年、季、月、周、日的函数
select to_char(sysdate, 'yyyy' ) from dual; --年
select to_char(sysdate, 'MM' ) from dual; --月
select to_char(sysdate, 'dd' ) from dual; --日
select to_char(sysdate, 'Q') from dual; --季
/*
Mi 分
ss 秒
D 周中的星期几
ddd 年中的第几天
WW 年中的第几个星期
*/
获取系统日期: SYSDATE()
格式化日期:
而如果把上式写作:
转换的格式:
表示 year 的:
y 表示年的最后一位 、
表示month的:
mon 用简写形式, 比如11月或者nov 、
month 用全称, 比如11月或者november
表示day的:
dd 表示当月第几天 、
ddd 表示当年第几天 、
dy 当周第几天,简写, 比如星期五或者fri 、
day 当周第几天,全称, 比如星期五或者friday
表示hour的:
表示minute的:
表示second的:
表示季度的:
另外还有ww 用来表示当年第几周 w用来表示当月第几周.
时间间隔乘以一个数字
在Oracle数据库,可以通过字段定义缺省值,实现在往表中插入数据时,如果不指定为该字段赋值,自动写入缺省值.
示例:
CREATE TABLE XXX(
LOAD_DATE DATE DEFAULT SYSDATE--缺省,设置加载时间
);
也可以通过修改已建的表的定义,为现存的表字段增加设置.
有关日期的操作中,更多的是涉及系统当前时间,用sysdate表示即可,如果是插入其他非系统时间的日期类型数据的话,用to_date转换再插入就可以了.
另外:有些日期字段中会有一些默认数据,所以to_date还是挺有用的.如:
原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟.
以上就是土嘎嘎小编为大家整理的oracle如何生产时间相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!