2010-12-27 8 views
7

sql datetimeの総時間はどのようにして取得できますか? sqlのdatetime to totalminute

さんが言ってみましょう:このように

select getdate() from table 

が、私はすべてを取得しますが、私は唯一の合計分を取得したいです。たとえば、 の場合は、07:10:35の場合は430が必要です。

これを達成する方法は?

フィールドの値は01-01-2001 07:10:40 です。結果は430((7 * 60)+10)です。

+3

あなたの質問は特に明確ではありません。 –

答えて

17

のためのオンライン

使用の本ここにサンプルです:

DECLARE @dt datetime 
SET @dt = '01-01-2001 07:10:20' 
SELECT DATEDIFF(MINUTE, DATEADD(DAY, DATEDIFF(DAY, 0, @dt), 0), @dt) 
+0

はこのエラーを返します(ローカル変数にデフォルト値を割り当てることはできません)。 – william

+0

ああ、申し訳ありません。私はあなたがSQL Server 2005上にいたという事実を忘れました。私はそれを修正します。 –

+0

徹底的に – Mukus

1

このクエリは、深夜からの経過時間を返します。

declare @now datetime = getdate() 
declare @midnight datetime = CAST(FLOOR(CAST(@now AS FLOAT)) AS DATETIME) 
select datediff(mi, @midnight,@now) 

コード

CAST(FLOOR(CAST("yourDateTimeHere" AS FLOAT)) AS DATETIME) 

は真夜中に、任意の日時に変換します。 "mi"関数付きのdatediffを使用して、深夜の分数を取得します。より多くの日付と時刻の数学

+0

「23:59:59」を意味すると思われるかもしれないので、「真夜中」という用語は誤解を招くかもしれませんが、代わりに「00:00:00」です。つまり、 'Dec 31 2016'の真夜中に基づいて計算を実行する場合は、' Dec 31 11:59:59'、またはおそらく 'Jan 01 2017 00:00:00'を期待するでしょう。 'Dec 31 00:00:00'、あなたのコードがあなたに与えるものです。 – JoeBrockhaus

+0

私は、コーディングと24時間/軍事的な時間の点で '真夜中'という言葉はかなり明確だと思います。 00:00:00は常に新しい日の始まりなので、「2016年12月31日の真夜中」と言えば、2016/12/31 00:00:00を意味するはずです.12時間の時計とAMでも/ PM指定子、12:00:00 AMは真夜中で、午前中にAMと指定されています。それは誤解を招くような12時から始まるということだけです。 –