在SQL Server 里的日期数据,我们经常可以用 字段<=’2008-5-20’这样的表达式,但在oracle却不可以,因为数据类型不一样 字段是date型,’2008-5-20’是字符型,需要用to_char 或者to_number转换成相同的类型才能进行比较。
刚开始这让我觉得不习惯,觉得不好,不过时间长了,觉得也有不少便利之处,尤其是配合trunc啊,to_char之类的,下面简单写一下常用的一些对日期的操作

获取当前的系统时间:select sysdate from dual         结果:2013-10-23 19:33:07

获取当前的日期 :  select trunc(sysdate) from dual   结果:2013-10-23 00:00:00

获取当年的第一天:select trunc(sysdate,'YYYY') from dual   结果:2013-1-1 00:00:00

获取当月的第一天:select TRUNC(SYSDATE,'mm')  from dual  结果:2013-10-01 00:00:00

取当前时间秒部分:Select to_char(sysdate,’ss’) from dual     显示当前的秒

获取当前秒小时部分:Select to_char(sysdate,'hh24') from dual  显示当前的小时

获取当前的日期部分:Select to_char(sysdate,'dd') from dual

Select to_char(sysdate,'mm') from dual

Select to_char(sysdate,'yyyy') from dual

获取当前是本月第几周:Select to_char(sysdate,'w') from dual

获取当前时间是本年第几周:Select to_char(sysdate,'ww') from dual  (从1.1开始算)

取当前时间是本年第几周:Select to_char(sysdate,'iw') from dual  (按实际日历的)

取当前时间是一周的第几天,从星期天开始,周六结束  Select to_char(sysdate,’d’) from dual

取当前日是星期几,和数据库设置的字符集有关,会输出’Tuesday’:Select to_char(sysdate,'day') from dual 

当前日是一年中的第几天:Select to_char(sysdate,'ddd') from dual

取一年后的今天  Select Add_months(sysdate,12) from dual

取两个日期之间的天数 Select sysdate-(sysdate-100) from dual

取两个日期之间的分钟数 Select (sysdate-(sysdate-100))*1440 from dual

取两个日期之间的秒数 Select (sysdate-(sysdate-100))*1440*60 from dual

取两个日期间隔的月份 Select months_between(sysdate,sysdate-100) from dual

取当前月的最后天 Select last_day(sysdate) from dual

取当前日之后第一个星期天,里面的’1’表示取星期日,如果今天正好是星期日,则会显示下一个星期日 Select next_day(sysdate,’1’) from dual

SQL语句中关于日期的操作(非常的有用)的更多相关文章

  1. 存储过程往拼接的sql语句中传递日期值

    存储过程往拼接的sql语句中传递日期值 declare @start datetime declare @end datetime set @start='2014-3-1' set @end='20 ...

  2. [转载]SQL语句中的日期计算

    1. 本月的第一天SELECT  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0) 2. 本月的最后一天SELECT  dateadd(ms,-3,DATEADD( ...

  3. SQL语句中的日期查询

    我们先创建一个表: CREATE TABLE `student` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(10) NULL COMMEN ...

  4. SQL语句中日期的计算方法大全

    sql语句中的日期处理一.日期處理函數1.日期增減函數 dateadd(datepart,number,dtae) datepart:是規定應向日期的哪一部分返回新值的參數.下列是sql server ...

  5. sql语句中获取datetime的日期部分或时间部分

    sql语句中获取datetime的日期部分 sql语句中 经常操作操作datetime类型数据.今天在写一个存储过程的时候需要将 一个datetime的值的 日期部分提取出来.网上有许多这方面的介绍. ...

  6. SQL点滴2—重温sql语句中的join操作

    原文:SQL点滴2-重温sql语句中的join操作 1.join语句 Sql join语句用来合并两个或多个表中的记录.ANSI标准SQL语句中有四种JOIN:INNER,OUTER,LEFTER,R ...

  7. MyBatis 中实现SQL语句中in的操作 (11)

    MyBatis 中实现SQL语句中in的操作 概括:应用myBatis实现SQL查询中IN的操作 1.数据库结构及其数据 2.mapper.xml文件 <?xml version="1 ...

  8. sql语句中获取datetime任何部分

    sql语句中获取datetime的日期部分 sql语句中 经常操作操作datetime类型数据.今天在写一个存储过程的时候需要将 一个datetime的值的 日期部分提取出来.网上有许多这方面的介绍. ...

  9. (转载)总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法

    总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法 总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中 ...

随机推荐

  1. 使用resize浏览器窗口大小改变事件容易出现的问题

    1.使用jQuery的resize时间的时候发现每次改变浏览器窗口大小事resize事件会执行两次, 解决办法 var resizeTimer=null; $(window).resize(funct ...

  2. petite-vue源码剖析-v-if和v-for的工作原理

    深入v-if的工作原理 <div v-scope="App"></div> <script type="module"> i ...

  3. LeetCode-004-寻找两个正序数组的中位数

    寻找两个正序数组的中位数 题目描述:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的 中位数 . 示例说明请见LeetCode官网. ...

  4. Laravel-AJAX-分页

    public function show(Request $request){ $posts = DB::table('posts') ->join('cate','posts.cate_id' ...

  5. PHP pdf转png windows版本

    链接:https://pan.baidu.com/s/1Bli-2HkucRTYTeujkcsmjg&shfl=sharepset 提取码:2une 1.php_imagick扩展 (1)下载 ...

  6. CentOS 8 关闭 Firewalld 及 SELinux

    检查 SELinux 是否开启 执行 sestatus 指令可以检视目前 SELinux 的状态, 其中一项是是否有开启, 执行以下指令: # sestatus | grep status 如果看到 ...

  7. LGP4590题解

    这题好像比较牛逼,好像又不是怎么样. 考虑两个串是如何计算 LCS 的. 这还不简单?\(dp[n][m]=\max(\max(dp[n-1][m],dp[n][m-1]),[s[n]==t[m]]d ...

  8. Java的jinfo命令使用详解

    jinfo命令简介 jinfo(Java Virtual Machine Configuration Information)是JDK提供的一个可以实时查看Java虚拟机各种配置参数和系统属性的命令行 ...

  9. vue3-码一下组件的v-model

    RT,码一下组件的v-model,知识点太多,没听懂...,后面学完回来再仔细看看

  10. 不使用数字和字母的PHP webshell

    Round 1 代码如下: <?php if(!preg_match('/[a-z0-9]/is',$_GET['shell'])) { eval($_GET['shell']); } 思路 将 ...