`
sunrise_king
  • 浏览: 173459 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mysql中时间加减和比较大小的方法

阅读更多
在Oracle中使用时间函数to_date习惯了,在Oracle中时间的加减也非常简单,直接加减即可。在Mysql中时间的函数很多,非常自由。
    在项目中经常用到的就是时间的加减。
    比如60天前,Oracle中直接就是sysdate-60,Mysql中就不行。
    对时间加减的函数是
    加ADDDATE(),减SUBDATE();
    select SUBDATE(now(),interval 60 day); 60天前的时间
     select ADDDATE(now(),interval 60 day); 60天后的时间

   在Oracle中经常用到trunc(sysdate,'D'),截取到天或者到小时。
   在Mysql中可以用date_format()来代替。返回的是时间格式的字符串,也是时间
   在Mysql中只要符合时间格式的字符串就可以当做Date类型。
   取今天时间到天,
   mysql> select DATE_FORMAT(now(),'%Y%m%d');
+-----------------------------+
| DATE_FORMAT(now(),'%Y%m%d') |
+-----------------------------+
| 20100611                    |
+-----------------------------+
1 row in set (0.00 sec)

取到小时。
mysql> select DATE_FORMAT(now(),'%Y%m%d%H');
+-------------------------------+
| DATE_FORMAT(now(),'%Y%m%d%H') |
+-------------------------------+
| 2010061121                    |
+-------------------------------+
1 row in set (0.00 sec)


Mysql中直接比较时间大小也是不能用>或<
只能转换成数字来比较大小。
如果比较天的大小,1号小于2号。需要转换成到现在为止的天数。用到的是to_days(),
mysql> select to_days('20100602');
+---------------------+
| to_days('20100602') |
+---------------------+
|              734290 |
+---------------------+
1 row in set (0.00 sec)

mysql> select to_days('20100603');
+---------------------+
| to_days('20100603') |
+---------------------+
|              734291 |
+---------------------+
1 row in set (0.00 sec)


如果时间的比较很精确,精确到时秒分就需要转换成UNIX_TIMESTAMP,换算成毫秒值来比较大小。
mysql> select UNIX_TIMESTAMP('201006021700');
+--------------------------------+
| UNIX_TIMESTAMP('201006021700') |
+--------------------------------+
|                     1601921820 |
+--------------------------------+
1 row in set (0.00 sec)

mysql> select UNIX_TIMESTAMP('201006021800');
+--------------------------------+
| UNIX_TIMESTAMP('201006021800') |
+--------------------------------+
|                     1601921880 |
+--------------------------------+
1 row in set (0.00 sec)
分享到:
评论
1 楼 xt_yangjie 2012-01-30  



不错。。

相关推荐

    mysql时间比较

    本文详细介绍了 MySQL 中日期和时间的相关操作,包括基本的时间加减、日期格式化、时间比较、时间戳比较以及一些复杂查询的示例。这些功能在日常的数据库开发和维护中非常实用,可以帮助我们高效地完成各种日期和...

    mysql资料_导入导出_备份还原_编码_字段类型长度_字符串_长度-定位-截取-拼接_日期_求差-加减-UTC-时区转换_查看表空间大小

    资源包含文件: 1、MySQL命令行导出数据库.txt 2、MySQL字段数据类型和长度.sql 3、usefullSQL.sql 4、编码.txt usefullSQL包含有: ...日期操作:求差,加减,UTC时间,时区(timezone)转换等 查看表空间大小

    MySql数据类型详解

    - **算术运算符**:+(加)、-(减)、*(乘)、/(除)、%(模)。 - **逻辑运算符**:AND、OR、NOT。 - **位运算符**:&(按位与)、|(按位或)、~(按位非)、^(按位异或)、(左移)、&gt;&gt;(右移)。 - **比较...

    [UNIX系统管理高手].A.Programmer&#39;s.Reference.Guide.To.Mysql.And.Perl.Dbi

    - **正常的算术运算**:支持加、减、乘、除等基本运算。 - **位运算**:支持按位与、或、异或等操作。 - **逻辑运算**:如AND、OR、NOT等。 - **比较运算符**:如=、!=、&lt;、&gt;等。 - **字符串比较函数**:如LIKE、IN...

    可乐的SQL速查文档.pdf

    算术运算符用于数值的加减乘除,比较运算符用于比较大小或相等性,逻辑运算符则用于组合多个条件。 SELECT语句是SQL中使用最频繁的语句之一,它的基本格式用于从数据库表中检索数据。检索数据可以针对单个列、多个...

    2021-2022计算机二级等级考试试题及答案No.10982.docx

    1. 数据类型:在编程中,货币型数据是可以参与算术运算的,例如加减乘除;日期型数据可以加减整数,表示时间的增减;字符型数据可以比较大小,但日期型数据也可以进行比较,例如判断哪个日期更早或更晚。 2. 中国...

    项目8 以程序方式处理学生信息管理数据表.pptx

    2. **表达式与运算符**:用于构建SQL语句的数学和逻辑表达式,如加减乘除运算符、比较运算符和逻辑运算符。 3. **控制语句**:包括条件语句(如IF-ELSE)和循环语句(如WHILE、FOR),用于编写复杂的逻辑流程。 4....

    易语言美孩儿数据报表

    在易语言中,处理日期和时间的函数非常丰富,可以轻松完成日期的加减、比较以及格式化显示等操作。 压缩包中的"美孩儿数据报表易语言源码"文件,就是整个项目的源代码,包含了上述所有功能的实现细节。通过阅读和...

    2021-2022计算机二级等级考试试题及答案No.17521.docx

    - **补码**:在现代计算机的算术逻辑单元(ALU)中,通常采用补码来进行加减运算。 - **优点**:补码运算可以简化硬件设计,并能够高效地处理正负数的加减运算。 ### 19. 二叉树的前序遍历 - **遍历结果**:对于给...

    2021-2022计算机二级等级考试试题及答案No.17403.docx

    16. 数据操作:在数据库中,货币型数据可以参与算术运算,日期型数据可以加减整数,字符串可以比较大小,但日期型数据也可以比较大小。 17. 设置控件焦点:在编程中,SetFocus方法用于将焦点主动设置到指定的控件或...

    2021-2022计算机二级等级考试试题及答案No.15346.docx

    9. 日期型数据可以与整数进行加减运算,表示时间的增减。 10. 创建窗体或报表的基础是数据来源,可以是表、查询或其他数据集。 11. 浏览器是访问互联网的主要工具,常见的有IE(Internet Explorer)。 12. SQL中...

    十天学会php(教程)---下载不扣分,回帖加1分,欢迎下载,童叟无欺。

    PHP支持多种运算符,包括算术运算符(如加减乘除)、比较运算符(如等于、不等于、大于、小于等)、逻辑运算符(如AND、OR、NOT)以及位运算符。在学习过程中,理解这些运算符的用法是基础,对于编写逻辑复杂的程序...

    2021-2022计算机二级等级考试试题及答案No.33.docx

    15. 计算机的ALU(算术逻辑单元)使用补码进行加减运算,这是计算机硬件基础的一部分。 16. Word中的Ctrl+C快捷键用于复制文本或对象,是常见的编辑操作。 17. 教务管理系统属于应用软件,而编译程序、操作系统和...

    2021-2022计算机二级等级考试试题及答案No.17363.docx

    - **加减运算**:可以对日期进行加减运算。 ### 20. MySQL 数据库的特点 **知识点概述:** MySQL 是一种广泛使用的开源关系型数据库管理系统。 **详细解释:** - **跨平台**:支持多种操作系统平台,如 Windows、...

    技术笔记(第一部分整理)

    这些运算符用于执行不同的操作,比如加减乘除、比较、逻辑判断等。 ##### 流程控制语句 流程控制语句用于改变程序的执行顺序,常见的有: - `if`-`else`语句:用于根据条件执行不同分支。 - `switch`语句:基于不同...

    PHP For Absolute Beginners

    - **继承与多态性**:继承允许子类继承父类的属性和方法,而多态性则允许子类重写父类的方法。 - **接口与抽象类**:接口定义了类必须实现的一组方法,而抽象类可以包含抽象方法(没有具体实现的方法),子类必须...

    2021-2022计算机二级等级考试试题及答案No.18250.docx

    该程序利用了Tkinter库来构建用户界面,并实现了基本的加减乘除运算功能。 以上是对所提供的试题及答案进行解析后得出的知识点总结。这些知识点对于备考计算机二级等级考试的人来说非常有用,可以帮助他们更好地...

    2021-2022计算机二级等级考试试题及答案No.2159.docx

    10. 数据类型操作:日期型数据可以加减整数,货币型数据可以参与算术运算,字符型数据可以比较大小,选项C正确。 11. 类的成员:在面向对象编程中,自身类对象不能作为类的成员,选项B正确。 12. 面向对象三要素:...

    2021-2022计算机二级等级考试试题及答案No.3062.docx

    9. 补码运算:计算机的ALU(算术逻辑单元)通常使用补码进行加减运算,以处理负数和溢出情况。 10. 逻辑运算符与条件判断:在表达式中,`AND`和`OR`操作符用于布尔逻辑运算,`NOT`用于取反。例如,表达式`x &gt; 0 AND...

Global site tag (gtag.js) - Google Analytics