oracle 日期函数集合(集中版本)第1/2页(4)

来源:asp之家 时间:2009-06-19 17:23:00 

23.next_day函数
next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。
很简单的一句话。
把Oracle的日期当作一个特殊数字,以天为单位。
可以进行 日期+数字 = 日期, 日期-日期=数字,日期-数字=日期
MESTAMP数据的格式化显示和DATE 数据一样。注意,to_char函数支持date和timestamp,但是trunc却不支持TIMESTAMP数据类型。这已经清楚表明了在当两个时间的差别极度重要的情况下,使用TIMESTAMP数据类型要比DATE数据类型更确切。
  
  如果你想显示TIMESTAMP的小数秒信息,参考下面:
  
  1 SELECT TO_CHAR(time1,'MM/DD/YYYY HH24:MI:SS:FF3') "Date" FROM date_table
  
  Date
  
  -----------------------
  
  06/20/2003 16:55:14:000
  
  06/26/2003 11:16:36:000
  
  在上例中,我只现实了小数点后3位的内容。
  
  计算timestamp间的数据差别要比老的date数据类型更容易。当你直接相减的话,看看会发生什么。结果将更容易理解,第一行的17天,18小时,27分钟和43秒。
  
  1 SELECT time1,
  
   2     time2,
  
   3     substr((time2-time1),instr((time2-time1),' ')+7,2)         seconds,
  
   4     substr((time2-time1),instr((time2-time1),' ')+4,2)         minutes,
  
   5     substr((time2-time1),instr((time2-time1),' ')+1,2)         hours,
  
   6     trunc(to_number(substr((time2-time1),1,instr(time2-time1,' '))))  days,
  
   7     trunc(to_number(substr((time2-time1),1,instr(time2-time1,' ')))/7) weeks
  
   8*  FROM date_table
  
  TIME1            TIME2           SECONDS MINUTES HOURS DAYS WEEKS
  
  -------------------------  -------------------------- ------- ------- ----- ---- -----
  
  06/20/2003:16:55:14:000000 07/08/2003:11:22:57:000000 43   27   18  17  2
  
  06/26/2003:11:16:36:000000 07/08/2003:11:22:57:000000 21   06   00  12  1
  
  这就意味着不再需要关心一天有多少秒在麻烦的计算中。因此,得到天数、月数、天数、时数、分钟数和秒数就成为用substr函数摘取出数字的事情了。
  
  系统日期和时间
  
  为了得到系统时间,返回成date数据类型。你可以使用sysdate函数。
  
  SQL> SELECT SYSDATE FROM DUAL;
  
  为了得到系统时间,返回成timestamp数据类型。你可以使用systimpstamp函数。
  
  SQL> SELECT SYSTIMESTAMP FROM DUAL;
  
  你可以设置初始化参数FIXED_DATE指定sysdate函数返回一个固定值。这用在测试日期和时间敏感的代码。注意,这个参数对于systimestamp函数无效。
  
  SQL> ALTER SYSTEM SET fixed_date = '2003-01-01-10:00:00';
  
  System altered.
  
  SQL> select sysdate from dual;
  
  SYSDATE
  
  ---------
  
  01-JAN-03
  
  SQL> select systimestamp from dual;
  
  SYSTIMESTAMP
  
  ---------------------------------------------------------
  
  09-JUL-03 11.05.02.519000 AM -06:00
  
  当使用date和timestamp类型的时候,选择是很清楚的。你可以随意处置date和timestamp类型。当你试图转换到更强大的timestamp的时候,需要注意,它们既有类似的地方,更有不同的地方,而足以造成破坏。两者在简洁和间隔尺寸方面各有优势,请合理地选择。

DateDiff( month, waterpay.CopyDate, GetDate() ) = 1 )
DateDiff( day, WaterPay.CopyDate, GetDate() ) = 1 )
这两个句子的意思分别是:求以month或者以day的方式返回当前日期(getdate)减数据库中的一个日期字段(waterpay.CopyDate)的值等于1的记录
请问这两句在sql server中的函数如何在oracle中改写?
问题点数:20、回复次数:2
Top

1 楼hevin(没有什么是不可能的)回复于 2005-09-25 18:12:10 得分 0 第一句:
Months_Between( to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd'),
to_date(to_char(waterpay.CopyDate,'yyyy-mm-dd'),'yyyy-mm-dd')
) = 1
Top
2 楼hevin(没有什么是不可能的)回复于 2005-09-25 18:18:06 得分 20第二句:
to_char(sysdate - 1,'yyyy-mm-dd') = to_char(waterpay.CopyDate,'yyyy-mm-dd')

标签:oracle,日期函数
0
投稿

猜你喜欢

  • Python基础进阶之海量表情包多线程爬虫功能的实现

    2022-03-19 11:52:13
  • Python爬虫抓取手机APP的传输数据

    2021-10-04 03:26:51
  • Ubuntu20下MySQL 8.0.28 安装卸载方法图文教程

    2024-01-13 23:43:11
  • go语言import报错处理图文详解

    2024-02-06 17:01:51
  • python类和继承用法实例

    2021-07-24 17:31:30
  • 详解如何用Python写个听小说的爬虫

    2021-09-04 09:56:09
  • Python多进程分块读取超大文件的方法

    2023-12-07 02:19:28
  • python通过pillow识别动态验证码的示例代码

    2023-08-27 02:29:21
  • 对python插入数据库和生成插入sql的示例讲解

    2022-03-10 05:46:40
  • python中xlwt模块的具体用法

    2023-11-08 07:10:15
  • python操作docx写入内容,并控制文本的字体颜色

    2023-11-25 03:14:33
  • python中.format()方法使用详解

    2021-07-19 03:38:07
  • 详解使用CUDA+OpenCV加速yolo v4性能

    2022-08-11 03:00:39
  • Python连接数据库并批量插入包含日期记录的操作

    2024-01-12 21:07:03
  • JSP安全开发之XSS漏洞详解

    2023-06-13 13:07:24
  • Python深度学习TensorFlow神经网络基础概括

    2022-08-13 02:57:18
  • 跟我学习javascript的作用域与作用域链

    2024-04-22 12:56:40
  • MySQL中如何定义外键

    2010-03-09 16:18:00
  • PHP基于yii框架实现生成ICO图标

    2024-06-05 09:44:14
  • SQL SERVER 2008 CTE生成结点的FullPath

    2024-01-16 08:04:29
  • asp之家 网络编程 m.aspxhome.com