FW:Oracle之PL/SQL 时间转换

CREATE OR REPLACE FUNCTION TTD(V_DATE NUMBER) RETURN VARCHAR2 IS
  RESULT VARCHAR(100);
BEGIN

  SELECT TO_CHAR(TO_DATE(‘1970-1-1 00:00:00‘, ‘yyyy-mm-dd hh24:mi:ss‘) +
                 V_DATE / 3600 / 24 + 8 / 24,
                 ‘yyyy-mm-dd hh24:mi‘)
    INTO RESULT
    FROM DUAL;

  RETURN(RESULT);
END TTD;
CREATE OR REPLACE FUNCTION TTN(V_DATE VARCHAR2) RETURN NUMBER IS
  RESULT   NUMBER;
  TMP_DATE VARCHAR2(100);
BEGIN

  SELECT SUBSTR(V_DATE, 0, 4) || ‘-‘ || SUBSTR(V_DATE, 5, 2) || ‘-‘ ||
         SUBSTR(V_DATE, 7, 2) || ‘ ‘ || SUBSTR(V_DATE, 9, 2) || ‘:00:00 ‘
    INTO TMP_DATE
    FROM DUAL;

  SELECT (TO_DATE(TMP_DATE, ‘yyyy-mm-dd hh24:mi:ss‘) -
         TO_DATE(‘1970-01-01 08:00:00‘, ‘yyyy-mm-dd hh24:mi:ss‘)) * 86400
    INTO RESULT
    FROM DUAL;

  RETURN(RESULT);
END TTN;
-- 日期转数字
SELECT TTN(‘2014071408‘) FROM DUAL;
-- 数字转日期
SELECT TTD(1405296000) FROM DUAL;

  

时间: 2024-10-10 15:56:07

FW:Oracle之PL/SQL 时间转换的相关文章

FW:Oracle之PL/SQL学习笔记

看到一个关于Oracle系列文章,基本集中在一些基础知识的汇总. 比较适合新员工培训和知识汇总回顾.记录之前不了解或者不确定的知识 http://my.oschina.net/KingPan/blog?catalog=504011 1.得到序列的下一个值或当前值 select your_sequence.nextval from dual;--获得序列your_sequence的下一个值 select your_sequence.currval from dual;--获得序列your_sequ

设置Oracle PL/SQL 时间显示格式 NLS_TIMESTAMP_FORMAT 2008-01-27 00:04:35:877000

设置Oracle PL/SQL时间显示格式NLS_TIMESTAMP_FORMAT Oracle中TIMESTAMP时间的显示格式 Oracle数据库的时间字段我们通常是使用timestamp 格式,在未做设置前, 查询出来的数据类似于“27-1月 -08 12.04.35.877000 上午”, 经过to_char函数转换后得到如下结果:“2008-01-27 00:04:35:877000”, 为了能直接修改时间,我们只需要在系统属性-高级-环境变量-系统变量 中增加如下设置: www.2c

Oracle中PL/SQL简介、基本语法以及数据类型

Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控制为一体的强大语言,PL/SQL不但支持更多的数据类型,拥有自身的变量申明,赋值语句,而且还有条件,循环等流程控制语句.过程控制结构与SQL数据处理能力无缝的结合形成了强大的编程语言,可以创建过程和函数以及程序包. PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性的发送给服务器,由服

ORACLE函数之日期时间转换函数

 1.          TO_CHAR 语法:TO_CHAR(X [,format]) 说明:将X按format格式转换成字符串.X是一个日期或者数字,format是一个规定了X采用何种格式转换的格式字符串 举例: SQL>SELECT TO_CHAR(sysdate,'YYYY-MM-DD hh24:mi:ss') A FROM DUAL; A ------------------- 2014-06-1815:58:43 2.            TO_DATE 语法:TO_DATE(

Oracle之PL/SQL学习笔记之触发器

Oracle之PL/SQL学习笔记之触发器 触发器是许多关系数据库系统都提供的一项技术.在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块. 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行. 即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接收参数.所以运行触发器就叫触发或点火(firing).ORACLE事件指的是对数据库的表进行的INSERT. UPDATE及D

Oracle之PL/SQL学习笔记

自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家批评指正. PL/SQL定义:PL/SQL是由Oracle开发,专门用于Oracle的程序设计语言. PL---Procedural Language. SQL—Structure QueryLanguage.PL/SQL包括过程化语句和SQL语句     PL/SQL的单位:块. 一个块中可以嵌套

Oracle实践--PL/SQL基础之同义词和序列

PL/SQL基础入门之同义词和序列             PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. 同义词: /*     同义词:现有对象的一个别名:    

Oracle实践--PL/SQL基础之表分区

PL/SQL基础入门之表分区 PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. ---------------------------------------------

Oracle中PL/SQL的执行部分和各种流程控制

Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: set serveroutput on; accept abc prompt '请输入abc的值'; DECLARE a int:= &abc; BEGIN dbms_output.put_line(a); END; 查询赋值举例: set serveroutput on; DECLARE str