- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章MySQL的时间差函数TIMESTAMPDIFF、DATEDIFF的用法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
时间差函数TIMESTAMPDIFF、DATEDIFF的用法 。
我们在写sql语句,尤其是存储过程中,会频繁用到对于日期、时间的比较和判断,那么对于这两个时间差比较函数用法做一个举例介绍.
datediff函数,返回值是相差的天数,不能定位到小时、分钟和秒.
1
2
|
-- 相差2天
select
datediff(
'2018-03-22 09:00:00'
,
'2018-03-20 07:00:00'
);
|
TIMESTAMPDIFF函数,有参数设置,可以精确到天(DAY)、小时(HOUR),分钟(MINUTE)和秒(SECOND),使用起来比datediff函数更加灵活。对于比较的两个时间,时间小的放在前面,时间大的放在后面.
1
2
3
4
5
6
7
8
9
10
|
--相差1天
select
TIMESTAMPDIFF(
DAY
,
'2018-03-20 23:59:00'
,
'2015-03-22 00:00:00'
);
--相差49小时
select
TIMESTAMPDIFF(
HOUR
,
'2018-03-20 09:00:00'
,
'2018-03-22 10:00:00'
);
--相差2940分钟
select
TIMESTAMPDIFF(
MINUTE
,
'2018-03-20 09:00:00'
,
'2018-03-22 10:00:00'
);
--相差176400秒
select
TIMESTAMPDIFF(
SECOND
,
'2018-03-20 09:00:00'
,
'2018-03-22 10:00:00'
);
|
在存储过程中的写法:
注意:var_committime是前面业务中获取到需要比较的时间.
1
2
3
4
5
6
7
8
9
10
11
12
|
-- 获取当前时间
SET
var_current_time = CONCAT(CURDATE(),
' '
,CURTIME());
-- 时间比较
SET
var_time_diff = TIMESTAMPDIFF(
MINUTE
, var_committime, var_current_time);
-- 判断未审核的合同是否超过48小时未处理,如果超过则进行后续逻辑处理,否则不处理。
IF (var_time_diff > 2880)
THEN
-- 相关业务逻辑处理
END
IF;
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/laowang2915/article/details/79666642 。
最后此篇关于MySQL的时间差函数TIMESTAMPDIFF、DATEDIFF的用法的文章就讲到这里了,如果你想了解更多关于MySQL的时间差函数TIMESTAMPDIFF、DATEDIFF的用法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想使用sql查询数据库以显示id 1,2,3等之间的时间差异。基本上它会比较其下面的行的所有记录。任何帮助,将不胜感激。 IDCODE DATE TIME DIFFERENCE (M
SQL服务器: DECLARE @Date1 DATETIME SET @Date1 = '2012-26-12 12:00:05 AM' DECLARE @Date2 DATETIME SET @D
SQL服务器: DECLARE @Date1 DATETIME SET @Date1 = '2012-26-12 12:00:05 AM' DECLARE @Date2 DATETIME SET @D
我正在尝试执行我认为是简单的日期差异函数的操作,但是由于某种原因,我的单位值被读取为列(“dd”),因此我一直在获取列,但无法解决错误 我正在使用AWS Athena 我的代码是这样 SELECT "
我有一个包含日期列(开始日期、结束日期)的表格,我想计算这些日期之间的差异并按月分组。 我可以在几天内得到 datediff,但我不知道如何在月内对它进行分组,有什么建议吗? Table: id
我在我的 mongoDB 中有一个集合,它存储提供给客户的服务以及他们的电子邮件地址,如下所示 { "_id" : ObjectId("56a84627f8fd4a136c0e944a"),
我们想计算两个 DateTimeOffset 之间的差异,但是,SQL 返回了错误的值,我们做错了什么? DECLARE @timeInZone1 AS DATETIMEOFFSET DECLARE
我需要计算两个日期之间的 DateDiff(小时),但仅限于工作时间(8:30 - 16:00,没有周末)。然后,按照下面的示例,此结果将放入 Reaction_Time 列中。 ID 日期 reac
我有一个名为 member 的 SQL 表,其中有成员信息以及他们的出生日期。 我需要列出所有 25 岁以上的人。现在,我得到了这个: SELECT * FROM members WHERE DATE
我在我们的旧代码中找到了一个地方,原来的程序员试图计算一个员工是否被雇用了一定年限。计算使用的是受雇日期与今天之间的天数差除以 364。这对我来说没有意义,所以我将其更改为年差。这似乎也给出了错误的答
我在这里在 CF 中解决了一个难题。 您有一个时间戳作为参数传递给服务器。例如 2012-5-10 14:55 . 如果从给定的时间过去了 30 秒,您将如何查看并返回 true或 false ? 规
我正在运行一个简单的 DATEDIFF 查询,但它似乎没有正确计算天数,或者我做错了什么。 如果我跑 PRINT DATEDIFF(Day, 2010-01-20, 2010-01-01) RETUR
我在将分钟转换为小数时遇到了一些问题,即使我已经查看了 SO 的其他回复。 select cast(datediff(minute, min(start_time), min(complete_tim
我需要从 SQL Server 数据库向下游传递一个值,这本质上是两个 时间戳 之间的差异。使用 DATEDIFF 函数就足够简单了。 SELECT DATEDIFF(day, '2015-11-06
有人知道为什么以下返回 8 吗?我预计 8 小时 30 分钟,还是 8.5? declare @start_day datetime; declare @end_day datetime; decla
我想获取相对于当前日期的上个月 SELECT datediff(mm,-1,2-2-2011) 此查询给出67,这是一个错误的值..我哪里出错了? 最佳答案 您可以使用DATEADD 例如。 SELE
我在使用 PHP DateDiff 时遇到问题,我不明白为什么每个时区返回不同的结果,例如在本例中布拉格返回 0 个月,而美国返回 1 个月。 这有什么区别以及我如何按预期返回 1 个月(而不是 30
我有一个名为 date1 的变量,其中包含使用 parseDateTime 生成的 ColdFusion 日期/时间对象。当我转储变量时,我得到 {ts '2014-12-20 15:46:57'}。
我有一个 Excel 文件,它会在添加条目时自动为其添加时间戳。我想要一个脚本来查找第一个条目和最后一个条目之间的时间差(以分钟为单位)。这是我到目前为止所想到的。 Sub Duration() Di
我正在使用 SQL Server我需要知道患者接受治疗的天数。问题是我只能得到 startDate 而不能得到 endDate当我运行查询并按 StartDate 排序时,我得到如下内容: Start
我是一名优秀的程序员,十分优秀!