我怎樣才能得到整個時間這樣datediff(time, logindate, logoutdate)
獲得的全部時間
我知道這個內置的功能不接受時的說法,但我怎麼能得到的全部時間,而不是分鐘,毫秒,秒等。?
logindate datetime2
logoutdate datetime2
我想要像1:05:45而不是它的一部分。
我怎樣才能得到整個時間這樣datediff(time, logindate, logoutdate)
獲得的全部時間
我知道這個內置的功能不接受時的說法,但我怎麼能得到的全部時間,而不是分鐘,毫秒,秒等。?
logindate datetime2
logoutdate datetime2
我想要像1:05:45而不是它的一部分。
試試這個
create table dbo.UserLog (UserID VARCHAR(32),loginDate DATETIME,logoutDate DATETIME)
insert into userLog VALUES ('SPARKY','11/14/2009 3:25pm',getDate())
insert into userLog VALUES ('JANNA','11/14/2009 10:45am',getDate())
select UserId,loginDate,logoutDate,
convert(varchar(12),dateAdd(mi,datediff(mi,logindate,logoutdate),'Jan 1 1753 12:00AM'),114) as timeSpent
FROM userLog
基本上,添加日期之間的分鐘差最早有效的SQL日期並返回格式化爲一個時間值。
要具有差異天:
select cast(logoutdate - logindate as float) from table_name
或只是
select logoutdate - logindatefrom table_name
您可以評估日,小時,從它分鐘。
編輯
把它格式化爲時間:
SELECT CONVERT(VARCHAR,DATA_KOSZTU - DATA_OST_ZMIANY,108) FROM TR_KOSZT
,它會工作,如果還沒有登錄了超過24小時的用戶,因爲CONVERT用於格式化日期時間,而不是時間跨度。
因爲MSSQL沒有timepsan數據類型,所以datediff
以絕對整數從毫秒到數年返回應該足以讓您在.NET中創建一個說明TimeSpan
的實例。
你在說什麼Sql Server版本?在SQL Server 2000和更高版本中,至少,
SELECT datediff(ss,'2006-11-10 05:47:53.497','2006-11-10 05:48:10.420')
會給你這兩個日期時間之差,以秒爲單位。
例如, select CONVERT(varchar(10),GETDATE(),108)
這是您正在尋找的解決方案。
DECLARE @Date1 datetime
DECLARE @Date2 datetime
SET @Date2 = '2006-11-15 07:26:25.000'
SET @Date1 = '2009-11-15 05:35:45.000'
-- -----------------------
-- Math done by hand 1:50:40
--
DECLARE @TotalSeconds bigint
DECLARE @Hours bigint
DECLARE @Minutes bigint
DECLARE @Seconds bigint
DECLARE @HH varchar(20)
DECLARE @MM varchar(2)
DECLARE @SS varchar(2)
DECLARE @Result varchar(50)
--
SET @TotalSeconds = datediff(ss,@Date1 ,@Date2)
SET @Hours = FLOOR(@TotalSeconds/3600)
SET @TotalSeconds = @TotalSeconds % 3600
SET @Minutes = FLOOR(@TotalSeconds/60)
SET @Seconds = @TotalSeconds % 60
--
SET @HH = CAST(@Hours as varchar)
SET @MM = CAST(@Minutes as varchar)
SET @SS = CAST(@Seconds as varchar)
IF @Minutes < 10 SET @MM = '0' + @MM
IF @Seconds < 10 SET @SS = '0' + @SS
--
SET @Result = @HH + ':' + @MM + ':' + @SS
SELECT @Result
SQL Server,但我想像1:05:45而不是它的一部分。 – Tarik 2009-11-15 03:14:16
我的意思是SQL Server 2008 – Tarik 2009-11-15 03:15:12