oracle 文本日期相减,日期相减等于整数的问题
最初由 jackywood 发布
[B]自己以前写的函数, 也许对楼主的问题有帮助
sql server中有同名函数
[php]
create or replace function DATEDIFF(datepart varchar2, startdate date, enddate date) return number is
Result number;
v_year integer;
v_month integer;
v_day integer;
v_hour integer;
v_minute integer;
v_second integer;
v_datepart varchar2(30);
begin
v_datepart := lower(datepart);
/*
Datepart Abbreviations
year yy, y
quarter qq, q
month mm, m
day dd, d
week wk, w
hour hh, h
minute mi, n
second ss, s
*/
v_year := to_char(enddate,'yyyy')-to_char(startdate,'yyyy');
v_month := to_char(enddate,'mm')-to_char(startdate,'mm');
v_day := trunc(enddate) - trunc(startdate);
v_hour := to_char(enddate,'hh24')-to_char(startdate,'hh24');
v_minute := to_char(enddate,'mi')-to_char(startdate,'mi');
v_second := to_char(enddate,'ss')-to_char(startdate,'ss');
if v_datepart in ('year','yy','y') then
result := v_year;
elsif v_datepart in ('quarter','qq','q') then
result := v_year * 4 + ceil(v_month/3)-1;
elsif v_datepart in ('month','mm','m') then
result := v_year * 12 + v_month;
elsif v_datepart in ('week','wk','w') then
result := trunc(v_day/7);
elsif v_datepart in ('day','dd','d') then
result := v_day;
elsif v_datepart in ('hour','hh') then
result := v_day * 24 + v_hour;
elsif v_datepart in ('minute','mi','n') then
result := ( v_day * 24 + v_hour ) * 60 + v_minute;
elsif v_datepart in ('second','ss','s') then
result := ( ( v_day * 24 + v_hour ) * 60 + v_minute ) * 60 + v_second;
else
RAISE_APPLICATION_ERROR(-20001, ''''||datepart||''' is not a recognized dateadd option.' );
end if;
return(Result);
EXCEPTION
WHEN OTHERS THEN
RAISE ;
end DATEDIFF;
/
------
[/php] [/B]
oracle 文本日期相减,日期相减等于整数的问题相关推荐
- js使用在vue中Date来计算日期,当前日期前多少天的日期 两个日期相减或相加等
首先要给Date内置函数添加一个方法用于格式化时间 // 扩展date的时间格式化 Date.prototype.Format = function (fmt) {var o = {"M+& ...
- oracle 年月相减求月数,oracle 时间相减,月度相加减
oracle 时间相减,月份相加减 oracle 两个时间相减默认的是天数 oracle 两个时间相减默认的是天数*24 为相差的小时数 oracle 两个时间相减默认的是天数*24*60 为相差的分 ...
- JS中怎样使用Date对象加减日期
var date = new Date(2018,0,7)//新建一个时间,用于表示2018年1月7日. 为什么用0表示1呢,这是一个js的设计缺陷,0-11表示1-12月. 日期相加 如果date要 ...
- 如何在VC中加减日期及 CTime COleDateTime的常用操作和比较
如何在VC中加减日期及 CTime COleDateTime的常用操作和比较 [转贴 2008-10-31 15:51:28] 字号:大 中 小 如何在VC中加减日期 使用CTime类,如: ...
- 如何在VC中加减日期及 CTime COleDateTime的常用操作
如何在VC中加减日期 使用CTime类,如: CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999 CTime ...
- greenplum 查询出来的数字加减日期_Python实践代码总结第5集(日期相关处理)
英文的月份转数字及数字转英文 import calendar # 数字转月份的简写 calendar.month_abbr[12]--> 'Dec' # 简写月份转数字 list(calenda ...
- pandas 中上下两行相减(隔行相减) -- shift函数的使用
pandas 中上下两行相减(隔行相减) -- shift函数的使用 最近使用pandas处理数据,需求是想相邻两行上下相减,查API发现shift函数,很灵活,.你也可以隔任意行相减. p['xx_ ...
- 小程序 : js获取今日日期、加日期、减日期; 判断今日 、判断昨日
获取今日,日期加.日期减 效果图: 选择日期大于今日时 .js代码 Page({/*** 页面的初始数据*/data: {choseDate: '', // 选择的时间week:'', //星期几on ...
- EDate(日期)标签之日期加减
功能: 用于时间计算: l 日期加减一个时间段 l 两个日期计算 别名为etime 日期加减 日期加减日期加减 日期加减用法: <edate [id=书 ...
- js日期加减一天_JS日期加减,日期运算代码
这篇文章主要介绍了JS日期加减,日期运算代码,需要的朋友可以参考下 一.日期减去天数等于第二个日期 function cc(dd,dadd){ //可以加上错误处理 var a = new Date( ...
最新文章
- PHP中单引号和双引号的区别
- 5.fork和vfork
- PHP数组对象Json的互相转换
- Reference 字段的详情弹窗icon显示或者隐藏
- Python中单个下划线“_”变量的目的是什么?
- 转:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确 .
- 光端机与光纤收发器的区别
- leetcode 18. 四数之和(双指针)
- 并查集——小米笔试题求朋友圈个数,分小组个数
- Elasticsearch--springcloud整合 high-level-client-测试-保存数据---全文检索引擎ElasticSearch工作笔记024
- 使用Android OpenGL ES 2.0绘图之一:搭建一个OpenGL ES环境
- String 截取字符串#中间的文本
- 车间调度丨布谷鸟算法:以算例MK01为例
- 微信小程序data format error解决办法
- MAYA安装未完成,某些产品无法安装的解决方法
- 以虎嗅网4W+文章的文本挖掘为例,展现数据分析的一整套流程
- Houdini+UE4制作好看的地形(材质篇)
- 12点转成0点(原因时间格式化为十二小时制导致)
- Anaconda------环境管理
- 大学生科研项目选题计算机,大学生科研计划项目及选题.ppt