検索
ホームページデータベースmysql チュートリアル如何掌握 Oracle 中的时间间隔型数据
如何掌握 Oracle 中的时间间隔型数据Jun 07, 2016 pm 03:14 PM
oracleどうやってマスターデータ時間

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 在9i 版本以前,Oracle 没有内置的方式来记录时间的流逝。DATE型数据用来记录单独的时间点;但是要表达一个时间量(也就是一个间隔),数据库的设计者就必须把时间间隔转换成原始单位秒,然后用一个

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

    在9i 版本以前,Oracle 没有内置的方式来记录时间的流逝。DATE型数据用来记录单独的时间点;但是要表达一个时间量(也就是一个间隔),数据库的设计者就必须把时间间隔转换成原始单位秒,然后用一个NUMBER列来保存它。

    虽然NUMBER这个数据类型可以以秒为单位准确地表示时间,但是它使得时间的计算变得很困难。比如,60秒是1分钟,60分钟是1个小时,24个小时等于1天――这些数字在以十进制为基础的数字系统中都是非常蹩脚的。

    在Oracle 9i中,按照SQL 99标准,增加了时间间隔型数据INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND,它们和其他几种数据类型一起使得对时间的处理更加准确。TIMESTAMP、TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE等数据类型都把时间的表达精确到了若干分之一秒,而且后面两种还解决了地理位置造成的时间变化。

    在SQL和PL/SQL中,你都可以用时间间隔型数据,它们都是用同一种方式规定的:

    INTERVAL YEAR[(year_precision)] TO MONTH

    INTERVAL DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

    对于精确数值,规定有缺省值:年和日是两位数,若干分之一秒是六位数。

    时间间隔的大小由INTERVAL来表示,后面紧接一个放在单引号中的表达式,以及用来解释该表达式的文字。用YEAR TO MONTH表示时间间隔大小时要在年和月之间用一个连字符(-) 连接。而DAY TO SECOND表示时间间隔大小时要在日和时间之间用一个空格连接。举个例子来说,下面是2年6个月的时间间隔的表示方法:

    INTERVAL '2-6' YEAR TO MONTH

    下面的例子表示3天12个小时30分钟6.7秒:

    INTERVAL '3 12:30:06.7' DAY TO SECOND(1)

    时间间隔可以为正,也可以为负。它们可以从各种TIMESTAMP数据类型中加上或者减去,从而得到一个新的TIMESTAMP数据类型。它们之间也可以做加减运算得到新的时间间隔。

    列表A说明了怎样创建一个表格来记录一个事件的开始时间和持续时间,如实验等。数据被收集以后,SQL中内置的摘要函数不需要与原始单位秒进行相互转换,就可以报告总的持续时间和平均持续时间。

    列表A

    CREATE TABLE experiment

    (experiment_id NUMBER(9),

    experiment_desc VARCHAR2(80),

    experiment_start TIMESTAMP,

    experiment_duration INTERVAL DAY(1) TO SECOND(4)

    );

    Table created.

    INSERT INTO experiment

    VALUES (

    1, 'Busted urban myth', '01-JUN-2006 02:00:00 PM',

    INTERVAL '1 2:31:15.1250' DAY(1) TO SECOND(4)

    );

    1 row created.

    col experiment_desc format a40

    col experiment_start format a30

    col experiment_duration format a20

    SELECT * FROM experiment;

    EXPERIMENT_ID EXPERIMENT_DESC ―― ―― EXPERIMENT_START EXPERIMENT_DURATION ―― ―― 1 Busted urban myth 01-JUN-06 02.00.00.000000 PM +1 02:31:15.1250

    ―― Now compute the experiment's ending time

    SELECT experiment_id, experiment_start,

    experiment_start + experiment_durationexperiment_end

    FROM experiment;

    EXPERIMENT_ID EXPERIMENT_START ―― ―― EXPERIMENT_END ―― 1 01-JUN-06 02.00.00.000000 PM 02-JUN-06 04.31.15.125000000 PM

    但遗憾的是, TO_CHAR函数中没有包括任何能够映射到各个时间间隔数据类型片段的格式模型。但是,你可以用新的EXTRACT函数来提取和合并这些片段。格式如下:

    EXTRACT(timepart FROM interval_expression)

    列表B给出了一个运用这种方法的例子。

    列表B

    SELECT EXTRACT(DAY FROM experiment_duration) ||

    ' days, ' || EXTRACT (HOUR FROM experiment_duration) ||

    ' hours, ' || EXTRACT (MINUTE FROM experiment_duration) ||

    ' minutes' Duration

    FROM experiment;

    DURATION

--------------------------------------------------------------------------------

    1 days, 2 hours, 31 minutes

    首先,从experiment_duration列中将天数提取出来,文字“Days”是与之相联的。对于实验持续时间中的小时和分钟部分,操作与上述方法一样。

如何掌握 Oracle 中的时间间隔型数据

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
什么是oracle asm什么是oracle asmApr 18, 2022 pm 04:16 PM

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

怎么关闭oracle触发器怎么关闭oracle触发器Apr 18, 2022 pm 05:34 PM

关闭触发器的方法:1、使用“ALTER TRIGGER 触发器名称 DISABLE;”语句,可关闭指定名称的触发器;2、使用“ALTER TABLE 表名称 DISABLE ALL TRIGGERS;”语句,可关闭指定数据表中的所有触发器。

oracle 11g中的g是什么意思oracle 11g中的g是什么意思May 07, 2022 pm 06:02 PM

在oracle中,11g中的g是网格运算的意思,是grid的缩写;oracle 11g的版本是为了迎合分布式计算而做出的变化,因此做出了网格运算方面的改进,是oracle支持网格计算环境的体现,与8i中i代表internet的情况类似。

oracle有临时变量吗oracle有临时变量吗Apr 18, 2022 pm 06:04 PM

oracle有临时变量。在Oracle数据库中,可以使用变量来编写通用的sql语句,如果该变量前使用了“&”和“&&”符号,那么该变量就是一个临时变量,语法为“sql语句>&变量名;”。临时变量只在使用它的sql语句中有效,变量值不能保留。

oracle中dmp文件是什么文件oracle中dmp文件是什么文件May 07, 2022 pm 05:43 PM

在oracle中,dmp文件是数据库导出的文件,常用于数据库的备份和迁移;例如在dmp文件导入时,需要先把dmp文件存放到dump路径下,利用“imp dp 用户名/密码@orcl...需要导入的dmp文件名”命令导入即可。

一起聊聊Oracle怎样查询执行计划一起聊聊Oracle怎样查询执行计划May 05, 2022 pm 07:10 PM

本篇文章给大家带来了关于oracle的相关知识,其中主要介绍了关于查询执行计划的相关内容,执行计划也叫查询计划,是数据库执行SQL语句的具体步骤和过程,下面一起来看一下,希望对大家有帮助。

oracle有哪些索引oracle有哪些索引Apr 18, 2022 pm 05:18 PM

oracle的索引类型有:非唯一索引、唯一索引、位图索引、局部有前缀分区索引、局部无前缀分区索引、全局有前缀分区索引、散列分区索引、基于函数的索引。索引需在表中插入数据后创建,唯一索引可用“create unique index”语句创建。

如何通过编写实用代码来掌握 PHP8 扩展的使用如何通过编写实用代码来掌握 PHP8 扩展的使用Sep 12, 2023 pm 02:39 PM

如何通过编写实用代码来掌握PHP8扩展的使用引言:PHP(HypertextPreprocessor)是一种广泛使用的开源脚本语言,常用于编写Web应用程序。随着PHP8的发布,新的扩展和功能使得开发者能够更好地满足业务需求和提高代码效率。本文将介绍如何通过编写实用代码来掌握PHP8扩展的使用。一、了解PHP8扩展PHP8引入了许多新的扩展,如FFI、

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、