首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server :计算日期与时间之间和的函数

Server :计算日期与时间之间和的函数
EN

Stack Overflow用户
提问于 2016-12-21 19:50:41
回答 4查看 69关注 0票数 0

我有两张有日期的桌子。第一个是11.12.2016 12:00:00:00011.12.2016 12:45:06:000

我知道在那个日期之间的时间是45分06秒。

如何计算WHERE语句并将其写入SELECT所有记录的时间将超过45分钟?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-21 20:22:58

DATEDIFF(second,...将精确到1秒。

使用DATEDIFF(minute,...,每个方向的误差最多可达1分钟。

代码语言:javascript
复制
SELECT  * 
FROM    mytable
WHERE   DATEDIFF(second,date_col_1,date_col_2) > 45*60

这就是为什么您不希望在minute中使用datediff来查找分钟内的日期差异

代码语言:javascript
复制
declare @date1  datetime = '2016-12-01 00:00:00'
       ,@date2  datetime = '2016-12-01 00:01:59.99'

select  datediff(minute,@date1,@date2)  as datediff_minute
       ,datediff(second,@date1,@date2)  as datediff_second
代码语言:javascript
复制
+-----------------+-----------------+
| datediff_minute | datediff_second |
+-----------------+-----------------+
| 1               | 119             |
+-----------------+-----------------+
代码语言:javascript
复制
declare @date1  datetime = '2016-12-01 00:00:59.99'
       ,@date2  datetime = '2016-12-01 00:01:00'

select  datediff(minute,@date1,@date2)  as datediff_minute
       ,datediff(second,@date1,@date2)  as datediff_second
代码语言:javascript
复制
+-----------------+-----------------+
| datediff_minute | datediff_second |
+-----------------+-----------------+
| 1               | 1               |
+-----------------+-----------------+
票数 0
EN

Stack Overflow用户

发布于 2016-12-21 19:56:55

您可以使用DATEDIFF函数来完成它。

代码语言:javascript
复制
SELECT * FROM Table
WHERE DATEDIFF(minute,Column1,Column2) > 45

您可以了解更多关于该这里的信息。

(不要忘记用相关的名称替换Table Column1Column2。)

票数 0
EN

Stack Overflow用户

发布于 2016-12-21 20:35:20

您可以尝试创建这样的函数:

代码语言:javascript
复制
create function dbo.fn_diffdates ( @date1 datetime,  @date2 datetime)
returns bit
as begin
    declare @retValue bit = 0;
    SET @retValue = iif( datediff(minute, @date2, @date2) > 45, 1, 0)

    return @retValue
end

和查询如下

代码语言:javascript
复制
select * from yourtable where dbo.fn_diffdates(date1, date2) = 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41270850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档