今天有人把数据库两个time类型的字段查出来并做了减法,得到一个长形的数字。这个数字是什么?

首先在数据库里建立一张test表(mysql的数据库)

CREATE TABLE `NewTable` (

`id` int(10) NOT NULL AUTO_INCREMENT ,

`time1` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ,

`time2` timestamp NULL DEFAULT NULL ,

PRIMARY KEY (`id`)

)

然后录入两条数据,用如下语句查询

SELECT time2,time1,time2-time1 FROM `test`;

查询结果如下,结论是这个差值1的单位貌似是秒。

2012-05-15 19:02:172012-05-15 19:02:161

把time1和time2的类型改成date。这个结果的单位是0.

把time1和time2的类型改成datetime,这个结果如下,貌似单位还是秒。

2012-05-15 19:02:16

2012-05-15 19:02:17

-1.000000

今天遇到的数字结果不确定的情形并没有复现,难道数据库是因为数据库的类型是oracle?

先记到这里吧,这个时间减法还是不要乱用。mysql有计算时间差的函数datediff(),我们测试一下

SELECT time2,time1,time2-time1,DATEDIFF(time2,time1) FROM `test`;

得到结果如下:

2012-05-15 19:02:16

2012-05-15 19:02:17

-1.000000

0

结果居然是0...自己猜了一下,原来还有timediff() 这个函数,再重新测试一下:

SELECT time2,time1,time2-time1,TIMEDIFF(time2,time1) FROM `test`;

这次的结果就对了,结果的单位是秒

2012-05-15 19:02:16

2012-05-15 19:02:17

-1.000000

-00:00:01

好吧,数据库这边要多熟悉几个时间函数。在记一个now()函数的用法。now()用来获取当前时间,返回的是一个秒为单位的时间,但是返回时+0,这是就是一个串了,很有意思。

select NOW(),NOW()+0;

返回的结果,可以用他来获取一个串作为ID也不错嘛。

2012-05-15 19:20:44

20120515192044.000000

再来两个函数,今天计算最近七天的记录是用到的一个函数。date_add()和date_sub()

select DATE_ADD(now(), Interval 1 month);

SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);

返回的结果如下,后面的差值是可以变的。

2012-05-15 19:27:47

2012-04-15 19:27:47

2012-06-15 19:27:47

后面的差值我偷个懒,上网摘了一下,没做试验

SECOND 秒 SECONDS

MINUTE 分钟 MINUTES

HOUR 时间 HOURS

DAY 天 DAYS

MONTH 月 MONTHS

YEAR 年 YEARS

MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"

HOUR_MINUTE 小时和分钟 "HOURS:MINUTES"

DAY_HOUR 天和小时 "DAYS HOURS"

YEAR_MONTH 年和月 "YEARS-MONTHS"

HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS"

DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"

DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"

本来在java上做了一个实验。也贴出来吧。

public static void main(String[] args) {

Calendar calendar=new GregorianCalendar(2012, 5, 10, 21, 12,44);

Calendar calendar2=new GregorianCalendar(2012,5, 10, 21, 12,43);

System.out.println(calendar.getTimeInMillis()-calendar2.getTimeInMillis());

}

这个结果是1000,单位是毫秒。

/**

*20120522 补充

*/

今天遇到一个问题,oracle里,一个字段是date类型,怎么找再某天之后的记录。

用dateColumn>to_date('2012-05-02','yyyy-mm-dd');

如果字段是timestamp类型时,同样可以,最开始用的是相减大于0的写法,结果报错了。

总结一下,mysql中时间相减好像和函数没有什么区别,差值和字段类型有关。没有出现下午提到的不知道数据的现象。另外要熟悉几个时间函数。java里出来时间的函数为calendar,另外simpledateformate和date也很常用。

数据库两时间类型相减_sql中两个时间类型相减得到的值相关推荐

  1. 两种方法求解 正数数组中 两个数相减 的最大值

    一,问题描述 给定一个正数数组arr(即数组元素全是正数),找出该数组中,两个元素相减的最大值,其中被减数的下标不小于减数的下标. 即求出: maxValue = max{arr[j]-arr[i] ...

  2. 时间转年月日_编程中常见的时间格式

    时间格式 前端和后端时经常会遇到各种各样的时间格式,这些格式在编写程序的时候都需要去使用不同的处理方式,这里集中写一下. 先说一下各种不同的时间格式. 类型名 格式 说明 ISO 8601 一般:20 ...

  3. 两个byte数组拼接_java中两个byte数组实现合并的示例

    java中两个byte数组实现合并的示例 今天在于硬件进行交互的过程中,要到了了需要两个数组进行合并,然后对数组进行反转和加密操作,以下是两个byte数组合并的方法. /** * * @param d ...

  4. python中表示空类型的是_python中什么表示空类型

    python中什么表示空类型? python中None表示空类型.表示该值是一个空对象,空值是Python里一个特殊的值,用None表示.None不能理解为0,因为0是有意义的,而None是一个特殊的 ...

  5. Server服务器修改时间,如何在 Windows Server 中配置权威时间服务器

    Windows 包含 W32Time,它是 Kerberos 身份验证协议所需的时间服务工具.Windows 时间服务的目的是确保组织中运行 Microsoft Windows 2000 或更高版本的 ...

  6. python映射类型-什么是python中唯一的映射类型

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可 ...

  7. c# 整数类型转byte_C#中数据类型的整数类型

    c# 整数类型转byte Here is the list of the built-in integral types of data types in C#, sbyte, byte, char, ...

  8. 网页中加入当前时间html,如何在网页中加入当前时间的代码

    首先在body区域加入:οnlοad="showtime()" 然后在需要显示时间的地方加入: 或者将id="clock"加入到其他标签中 最后在网页中加入以下 ...

  9. 如何在计算机查找类型文件类型,怎样在电脑中查找某一类型文件?比如查 txt...

    怎样在电脑中查找某一类型文件?比如查 txt以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 怎样在电脑中查找某一类型文件 ...

最新文章

  1. asp.net模糊查询存储过程
  2. C# hashtable
  3. SQL注入(SQL Injection)
  4. java swing简介
  5. 第四届 AI City 挑战赛 @ CVPR 2020 开始啦!
  6. 生活中的数学 —— 操场几何学
  7. 二线制和四线制传感器的区别_消防系统的总线制和二线制什么区别?
  8. 20191221每日一句
  9. 信息安全-工控安全需求分析与安全保护工程
  10. 在线QuartzCron定时任务表达式在线生成
  11. leaflet加载谷歌影像地图、天地图影像地图、天地图影像注记
  12. linux icmp 时间戳过滤,ICMP-linux c 时间戳请求功能实现
  13. MyBatis的优点和缺点
  14. 微信发红包测试点整理
  15. 百度大脑iOCR助力财务报销智能化,省时省力
  16. 计算机的音乐怎样弹生日快乐,5 分钟让你学会用吉他弹《生日快乐》歌
  17. pid是滞后超前校正_如何理解超前补偿、滞后补偿、超前滞后补偿?
  18. 小练习使用html 中table表格 实现个人简历
  19. 转:C++读取EOF文件
  20. 大数据开发,就要掌握哪些技术?

热门文章

  1. 虚拟相机组件CinemachineVirtualCamera的body下的BindingMode属性
  2. true || false false
  3. 魅蓝note3联通卡显示无服务器,竟然有这么多bug?面对魅蓝note3犹豫了
  4. 概率论考研笔记(三)
  5. RGB 转 edp 接口dp501 示范电路
  6. 数据库还原-bak文件
  7. 【JAVA程序设计】(C00063)基于Springboot+Thymeleaf学校自动排课管理系统
  8. W3af---命令行模式实验详解(一)
  9. App地推活动方案该如何策划?
  10. 跟着黑马视频,Tomcat显示404的问题