2012-08-14 30 views
2

我努力做到以下幾點:SQL DATETIME數學

  • 格式GetDate()只顯示分鐘
  • 格式一varchar欄只顯示分鐘
  • GetDate()減去當前時間HH:MM:SSVarChar

這就是我所擁有的

CONVERT(VARCHAR(5), GETDATE(), 108) - substring(convert(varchar(20), ColumnName, 9), 13, 5) 

,但我得到這個錯誤,需要一些幫助,請:

操作數的數據類型爲varchar是減法運算符無效。

+0

什麼是你想在這裏實現? – Jim 2012-08-14 15:04:57

回答

1

你想要的是datepart(mi)。

要獲得GETDATE分鐘())

select dateadd(mi, - <minutes>, <datevalue>) 

要從GETDATE(時間,只投迄今:

select datepart(mi, getdate()) 

若要從日期時間減去分鐘數(在更新版本的SQL Server中):

select cast(getdate() as date) 

要在幾分鐘內獲得差異,請使用datediff:

select datediff(mi, <datestart>, <dateend>) 

你真的想完成什麼?

+0

我試圖採取以下時間[2012-08-14 10:12:02.690],這是一個SQL列中的varchar,並從中減去當前時間,通過僅顯示差異的分鐘來獲得差異...但是現在我看到,如果分鐘數大於60,那麼它也需要顯示小時數......無論如何,只是爲了計算總分鐘數的差異嗎? – user1572695 2012-08-14 15:14:10

+0

完美!謝謝! – user1572695 2012-08-14 15:25:19

0

我想這是你想要什麼:

declare @str varchar(30) 
set @str = '2012-08-14 10:12:02.690' 

select datediff(minute, cast(@str as datetime), getdate()) 

結果時getdate() = '2012-08-14 11:21:10.250'是總分鐘數甚至超過60:

69