Oracle时间运算

Oracle之日期运算 1 日月年的加减 2 时分秒的加减 3 日期间隔时分秒 4 日期 间隔日月年 5 确定两日期之间的工作天数 6 计算一年中周内个日期的次数 7 确定当前记录和下条记录之间的相差的天数 结尾 1、 日、月、年的加减 -- 1.1 日、月、年的加减 select sysdate as 当前日期, sysdate - 8 as 减8日, sysdate + 8 as 加8日 阅读详情

目录
=========================================
1.Oracle的日期函数
2.日期加减
3.月份加减
4.年份加减
5.求每月的最后一天
6.求每月的第一天
7.求下一个星期几

 

入门知识:

①Oracle中的日期时间存储:
oracle数据库中存放时间格式的数据,是以oracle特定的格式存贮的,占7个字节,与查询时显示的时间格式无关。不存贮秒以下的时间单位。
②Oracle中的日期时间显示:
通常,客户端与数据库建立起连接后,oracle就会给一个缺省的时间格式数据的显示形式,与所使用的字符集有关。一般显示年月日,而不显示时分秒。
③Oracle中的日期时间插入:
向表中插入数据时,如果不使用转换函数,则时间字段的格式必须遵从会话环境的时间格式,否则不能插入。
④Oracle中的日期时间格式修改:
a.SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
b.册表
/hkey_local_machine/software/oracle/home0主键中增加一个字串(8i版本),字串名为nls_date_format,字串的值为你希望定义的时间格式
前者只对当前会话有效,也即是一旦你关闭了SQL*PLUS窗口或重新打开一个SQL*PLUS窗口,日期时间格式依然采用本地字符集对应的日期时间格式。后者对所有客户端应用有效。当两者同时应用时,以alter session的修改为准。


一、Oracle的日期函数:

Oracle从8i开始就提供了大量的日期函数,这些日期函数包括对日期进行加减、转换、截取等功能。下面是Oracle提供的日期函数一览表 

Function

Use

ADD_MONTHS

Adds months to a date

LAST_DAY

Computes the last day of the month

MONTHS_BETWEEN

Determines the number of months between two dates

NEW_TIME

Translates a time to a new time zone

NEXT_DAY

Returns the date of the next specified weekday

ROUND

Rounds a date/time value to a specified element

SYSDATE

Returns the current date and time

TO_CHAR

Converts dates to strings

TO_DATE

Converts strings and numbers to dates

TRUNC

Truncates a date/time value to a specific element


二、日期加减:

在Oralce中,对日期进行加减操作的默认单位是天,也就是说如果我们向当前日期加1的话是加上一天,而不是一秒或一小时。那么对一天中的一段时间进行加减要怎么做呢?很简单!只需将它们转化为以天为单位即可。

【1】为当前时间加上30分钟:
月份的加减和日期加减相比要难了很多,因为每个月份的天数并不是固定的,可能是31,30,29,28。如果采用上面的方法将月份转换成实际天数将不可避免地出现多个判断,幸亏Oracle为我们提供了一个add_months函数,这个函数会自动判断月份的天数。看看下面的例子:

【1】为当前时间加上6个月:

SQL >   select  to_char(sysdate,  ' yyyy-mm-dd hh:mi:ss ' ) now_date,
  
2              to_char(sysdate+(30/24/60), 'yyyy-mm-dd hh:mi:ss')  new_date
  
3      from  dual;

NOW_DATE                               NEW_DATE
-- ------------------------------------ --------------------------------------
2008 - 06 - 30   10 : 47 : 31                      2008 - 06 - 30   11 : 17 : 31

SQL
>  


我们看到了在绿色高亮处使用30/24/60将分钟转换成天。另外一个要注意的地方是:SQL*PLUS环境下默认的日期格式:NLS_DATE_FORMAT是DD-MM-YYYY,也即是不包含时、分、秒,所以我们这里必须采用to_char的方式指定输入的日期格式。

除此之外也可以通过在SQL*PLUS中执行下列语句修改默认的日期输出格式,这样的话就不需要通过to_char来转换了,直接输出就行。

alter  session  set  nls_date_format = ' yyyy-mm-dd hh24:mi:ss ' ;


【2】为当前时间减去30分钟:

SQL >   select  to_char(sysdate + ( - 30 / 24 / 60 ), ' yyyy-mm-dd hh:mi:ss ' ) new_date  from  dual;

NEW_DATE
-- ------------------------------------
2008 - 06 - 30   10 : 24 : 59


只需要加上一个负数即可以了。

三、月份加减:

SQL> select add_months(sysdate, 6) from  dual;

ADD_MONTHS
----------

31-12月-08


【2】为当前时间减去6个月:

SQL> select add_months(sysdate, -6) from  dual;

ADD_MONTHS
----------

31-12月-07


【3】求两个日期相差的月数:

通常情况下两个时间相减将得到以天数为单位的结果,可是有时我们更希望得到以月为单位的结果,如果手动转换这太麻烦了,所以Oracle又提供了一个函数,这个函数就是months_between。

SQL >   select  months_between(sysdate,
  
2          to_date( ' 2008-01-01 01:00:00 ' ,  ' yyyy-mm-dd hh:mi:ss ' )) result
  
3      from  dual;

    RESULT
-- --------
5.94928203


months_between函数有2个参数,第一个参数是结束日期,第二个参数是开始日期,Oracle用第一个参数减去第二个参数得到月份数。所以结果有可能会是负数的。

四、年份加减:

Oracle并不直接提供对年份进行加减的函数,不过有了add_months和months_between函数,我们照样可以做到。

【1】为当前日期加上2年:

SQL >   select  add_months(sysdate, 2*12)  two_years_later
  
2        from  dual;

TWO_YEARS_
-- --------
30 - 6月  - 10


【2】求两个日期相差几年:

SQL >   select  months_between(sysdate, 
  
2          to_date( ' 2006-06-30 ' ,  ' yyyy-mm-dd ' ))  / 12  years_between
  
3      from  dual;

YEARS_BETWEEN
-- -----------
             2


直接将两个日期相减,然后除以365天并不准确,但是不管一年有多少天它总是只有12个月,所以利用这一点我们可以先求出两个日期相差的月数,再除以12就得出相差的年数了

五、求每月的最后一天:

SQL >   select  last_day(add_months(sysdate, 2 )) last_day
  
2      from  dual;

LAST_DAY
-- --------
31 - 8月  - 08


六、求每月的第一天:

Oracle提供了last_day让我们能够求出所在月份的最后一天,但没有对应的first_day函数,如果有这方面的需求,只需要稍微动一下脑筋,利用last_day函数即可。例如下面的SQL语句就是求出下个月的第一天:

SQL >   select  last_day(sysdate)+1  fisrt_day
  
2        from  dual;

FISRT_DAY
-- --------
01 - 7月  - 08


在这里我们将“每月的第一天”转换成“上个月最后一天的下一天”,问题就解决了!

七、求下一个星期几:

有时候我们会碰上“下个星期五是几号啊?”这样常见的问题。Oracle为此提供了一个函数:next_day,它的语法是这样的:next_day(date, string)。其中第一个参数date告诉Oracle从什么时候开始算起,第二个参数string则告诉Oracle要取的工作日。

下面我们看看如何得到下个星期五的日期:

SQL >   select  next_day(sysdate,  ' Friday ' ) " Next  Friday"  from  dual;
select  next_day(sysdate,  ' Friday ' ) " Next  Friday"  from  dual
                         
*
ERROR at line 
1 :
ORA
- 01846 : 周中的日无效


很奇怪!是不?明明语法没有问题,但为什么会说“周中的日无效”呢?这里就不得不说到Oracle中的语言和时区的问题了。下面这张图是使用TOAD截取出来的客户端session的语言和时区信息:



图一

从图中我们知道了客户端的语言是简体中文,日期使用的语言也是简体中文,这就是为什么上面的SQL语句出错的原因了,因为在中文中只有“星期一,星期二”这样的工作日表示,而没有“Monday,Firday”这样的写法!

SQL >   select  next_day(sysdate, ' 星期五 ' ) "下周五"  from  dual;

下周五
-- --------
04 - 7月  - 08


如果你不确定自己的时区或者你担心从一个时区移植到另一个时区时,SQL语句会出错,Oracle还允许你用数字的形式来表示工作日。但是要记得一点:1表示的是周日,2表示的是周一,3表示的是周二,依此类推。

例如我要查下个周三是什么时候,则函数是这样写的:next_day(sysdate, 4)。

SQL >   select  next_day(sysdate,4)   from  dual;

NEXT_DAY(S
-- --------
02 - 7月  - 08




看一下日历是不是正确的,确实不错!呵呵

ORACLE日期处理大全 8 to_char(sysdate,'Month','NLS_DATE_LANGUAGE = American'), --九个字符表示的月份,右边用空格填补首字母大些。7 to_char(sysdate,'month','NLS_DATE_LANGUAGE = American'), --九个字符表示的月份,右边用空格填补全部小写。5 to_char(sysdate,'Mon','NLS_DATE_LANGUAGE = American'), --三位字符的月份缩写首字母大些。 阅读详情

相关推荐

oracle时间加减运算

oracle时间加减运算

z19861216的博客 441

Oracle开发专题之:时间运算

1.Oracle的日期函数2.日期加减3.月份加减4.年份加减5.求每月的最后一天6.求每月的第一天7.求下一个星期几入门知识:①Oracle中的日期时间存储:oracle数据库中存放时间格式的数据,是以oracle特定的格式存贮的,占7个字节,与查询时显示的时间格式无关。不存贮秒以下的时间单位。②Oracle中的日期时间显示:通常,客户端与数据

chaoma96的专栏 1414

【FPGA的基础快速入门23--------OV5640摄像头VGA显示】

FPGA的基础学习--------OV5640摄像头VGA显示OV5640简介二级目录三级目录 OV5640简介 OV5640同OV7725一样,都是Omni Vision(豪威科技)公司生产的CMOS图像传感器。 OV5640支持更高的分辨率(500W像素)、采集速率,具有更高的图像处理性能,主要应用在手机、数码相机、电脑多媒体等领域。 OV5640支持LED补光、MIPI(移动产业处理器接口)输出接口和DVP(数字视频并行)输出接口选择、ISP(图像信号处理)以及AFC (自动聚焦控制)等功能。 OV

暮雨中的坚果的博客 7689

oracle时间运算

--为当前时间加上30分钟--select to_char(sysdate,yyyy--mm-dd hh24:mi:ss) now_date,to_char(sysdate+(30/24/60),yyyy-mm-dd hh24:mi:ss) new_date from dual--为当前时间加上3个月--select add_months(sysdate,3) addm f

huozhicheng的专栏 1130

从零到一:Firefly-RK3399上的Ubuntu镜像构建与GPU加速实战

本文详细介绍了在Firefly-RK3399开发板上从零构建深度优化的Ubuntu系统镜像的全过程,包括交叉编译环境配置、内核定制、GPU加速环境部署(Mesa Panfrost驱动、OpenCL/Vulkan支持)以及深度学习推理优化(TFLite + LinuxNN)。通过实战案例展示了如何充分发挥Mali-T860 GPU的硬件潜力,提升边缘AI应用的性能和能效。

pz8901234的博客 1019

ZYNQ 系统的IEEE1588 实现方法

zynq IEEE588/PTP 实现方案(讨论稿)

姚家湾博客 1万+

oracle中to_timestamp函数对时间的加减操作

操作Oracle时,经常需要对时间进行加减操作,这个直接看SQL: select to_timestamp(' 2022-02-22 14:13:29','yyyy-mm-dd hh24:mi:ss') + 30/60/24 from dual 重要的是后边那个“ + 30/60/24 ” 表示 此时间加上30分钟, 看结果: 后边默认的加减单位是天,所以需要换算,除以24换算成小时,除以60换算成分钟,其他单位以此类推 我自己代码里就这样用的,没有任何问题。 select * from "

weixin_42209881的博客 6613

Sentinel2 哨兵2数据下载方法(USGS)-史上最全讲解

本文讲述了从USGS官网下载Sentinel2的方法。主要包括USGS官网的注册和下载流程,以及选定研究区中所出现的问题、解决办法。

xiatiandexia123的博客 6万+

oracle 时间加减运算,oracle Date型时间加减

update remember t set t.arrivetm =(t.arrivetm-1-1/24-10/(24*60))where t.restartinfo='whyq20090922108942' and t.zx='5'今天要找一个函数,实现在ORACLE中改变时间。在网上找到一个,然后应用到上面的句子里,很好用。该语句实现在现在的arrivetm上减去1天1小时10分钟。原帖内容...

weixin_33525298的博客 1002

CarPlay盒子选购避坑指南:为什么你的车机破解了却用不了?从USB设备ID说起

本文深入解析CarPlay盒子硬件兼容性问题,从USB设备ID匹配到车机适配逻辑,揭示破解成功却无法使用的根本原因。通过分析USB设备识别的核心要素和逆向工程usb_device_manager.xml文件,提供三种主流解决方案对比,并强调操作中的硬件保护机制,帮助车主避免常见陷阱。

weixin_30706691的博客 473

奇迹mu服务端DATA文件解析:从基础配置到高级玩法

本文深入解析奇迹MU服务端DATA文件的核心配置与高级玩法,涵盖基础设置、怪物AI系统、技能战斗机制、副本事件管理及物品商城定制。通过详细示例和实用技巧,帮助开发者掌握从经验倍率调整到动态事件触发的全方位配置方法,实现个性化的私服搭建与运营。

weixin_29254673的博客 530

oracle中的时间运算

在oracle中进行时间运算是比较方便的,下面总结下oracle中时间运算的技巧: 1、日期加年、月 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from dual; --加1月 2、日期加天、小时、分和秒 加1天:select s...

haozi的博客 4260

对雷达中相位补偿概念的一些理解

基于多普勒相位补偿的速度扩展方法和DBF测角,两者本质上都是对相位进行补偿。

qq_42235129的博客 4030

oracle中计算时间,oracle中时间运算

1、oracle支持对日期进行运算2、日期运算时是以天为单位进行的3、当需要以分秒等更小的单位算值时,按时间进制进行转换即可4、进行时间进制转换时注意加括号(见示例中红色括号),否则会出问题SQL> alter session set nls_date_format='yyyy-mm-dd hh:mi:ss';会话已更改。SQL> set serverout onSQL> dec...

weixin_34543543的博客 654

PINN疲劳寿命预测优化

本项目基于物理信息神经网络(PINN)构建材料疲劳寿命预测模型,通过融合Paris裂纹扩展方程与实验数据,实现裂纹扩展行为的精准预测。核心方法包括:1)将Paris方程作为物理约束嵌入神经网络训练;2)生成含噪声的模拟数据并进行归一化处理;3)采用PINN-GA联合优化框架,以裂纹扩展速率最小化为目标优化材料参数。该方案通过物理规律与数据驱动的结合,显著提升预测模型的泛化能力,为工程材料寿命评估提供新思路。

huanghm88的专栏 146

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

oracle中时间运算

论坛中常常看到有对oracle中时间运算提问的问题,今天有时间,看了看以前各位兄弟的贴子,整理了一下,并作了个示例,希望会对大家有帮助。 首先感谢ern、eric.li及各版主还有热心的兄弟们 内容如下: 1、oracle支持对日期进行运算 2、日期运算时是以天为单位进行的 3、当需要以分秒等更小的单位算值时,按时间进制进行转换即可 4、进行时间进制转换时注意加括号(见示例中红色括号),否则会出问题 SQL> alter session set nls_date_format='yyyy-mm-dd hh:

edward的专栏 776

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Oracle时间运算(日期截取及四舍五入)

Oracle时间运算(日期截取及四舍五入)   如同对数字进行四舍五入和按位截取一样,Oracle对时间日期也提供了这两种功能。但比起对数字进行四舍五入和截取比较复杂:这是因为时间日期是有格式的。下面看看这两个函数的定义和用途:   ROUND(date [, format])   TRUNC(date [, format])   Round函数对日期进行“四舍五入”,Trunc函数对日...

JuncaiLiao的专栏 1013

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Oracle 日期时间运算

---------------------oracle 时间运算-------------------------------------------------       --两个日期间的天数    SELECT FLOOR(SYSDATE - TO_DATE('20110701', 'yyyymmdd')) FROM DUAL;       --查找2002-02-28至2002-...

panhongbin100的博客 262

Oracle技术之如何对时间进行简单加减运算

今天有朋友问,如果对时间进行运算,比如对一个时间值加3分钟,或者对一个时间减去1秒。以下测试简单说明了这类运算的使用方式:SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';Session altered.SQL> select sysdate, sysdate+1/24, sysdate ...

weixin_33897722的博客 121

oracle 日期函数运算,PL/SQL 日期时间类型函数及运算

内部存储格式:世纪、年、月、日、小时、分钟、秒默认格式是:DD-MON-RR。SYSDATE返回当前的系统时间。SELECTSYSDATEFROMDUAL;对日期的数学运算SELECT(SYSDATE-HIRE_DATE)/7FROMTABLENAMEWHEREROWNUM;数字列ADD_MONTHS(date,x)函数,返回加上X月后的日期DATE的值。X可以是任意整数。如果结果的月份中所包含的...

weixin_42508241的博客 347

Oracle 如何对时间进行简单加减运算

在我们用dbms_job包进行定时Job的时候,需要设置时间间隔,所以需要知道时间的基本加减方法. SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; 会话已更改。 SQL> select sysdate, sysdate+1/24, sysdate +1/1440, sysdate + 1/...

weixin_30635053的博客 307

oracle时间运算的简单注意点

假如在表中存储的数据类型为字符型。在程序中要把它当做时间用的话,注意程序中to_char、to_date函数指定的转换格式要保存一致。否则程序不会报错,但是实际有可能是错的。    改变当前会话的时间格式:    alter session set nls_date_format='格式';    alter session set nls_date_format='yyyy-m

专心 细致 勤奋 532
上一篇: MS SQL SERVER 海量数据的查询优化及分页算法
下一篇: Oracle 建表
MR丶CHAN
博客等级 码龄20年 31粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值