2016-03-01 49 views
0

我有24小时在数据库中存储为last_time,我需要在几分钟内得出当前时间和last_time之间的差异。我搜查了很多,但在所有情况下,时间差是由两个日期。请告诉我如何正确使用DiffDate功能,使用24小时格式化时间。如何在24小时内从SQL Server获取时间差?

+0

你不关心日期,时间正确吗?没有日期信息,只有时间正确? – Sharky

+0

是的。我只使用时间进行搜索,因为总是所有记录都在同一天。 – nishz

回答

2

对于时差分钟

SELECT DATEDIFF(mi, last_time, CAST(getdate() as time)) from <TABLE_NAME> 

对于DD时间差:MM:SS

declare @null time 
SET @null = '00:00:00'; 
SELECT DATEADD(SECOND, - DATEDIFF(SECOND, last_time, CAST(getdate() as time)), @null) from <TABLE_NAME> 

对于MySQL

SELECT TIMEDIFF(last_time, cast(now() as time)) as diff 
+0

我不知道为什么,但它说,本地函数中的不正确的参数计数为什么它不工作datediff @ evil333请帮助? – nishz

+0

什么是SQL使用? MYSQL,MS SQL,Oracle? – Chendur

+0

我正在使用mysql bro – nishz

1

试试这个:

SELECT DATEDIFF(mi, last_time, CONVERT(varchar(10), GETDATE(), 108)) 
+0

我不知道为什么,但它说本地函数中的参数数不正确,为什么它不起作用? – nishz

1

我不明白太多的问题。此查询显示从上次日期到当天的差异分钟数。希望它有帮助吗?

SELECT DATEDIFF (minute, last_date, current_date) 
1

您可以在当前时间使用CAST(GETDATE() AS Time)

SELECT DATEDIFF(MINUTE, Last_Time,CAST(GETDATE() AS Time)) 
FROM TABLE 
相关问题