2016-06-28 11 views
3

の秒せずに時間を格納するための方法:私はこの形式で私のSQL Serverデータベースに時間を節約したいSQL Serverの

hh:mm 

はなく、この:

hh:mm:ss 

があることは可能ですか?そのためのユニークなデータ型はありますか(データ型のリストを調べようとしましたが、見つけられませんでした.MSDNで検索しようとしましたが見つかりませんでした)。別の方法がありますか?私は本当に秒を保存したくありません。

+0

投稿される前に値を編集して秒数(および保存されているミリ秒数)を0 – GuidoG

+0

@GuidoGに設定します。ありがとうございます。私はあなたが答えに入れておくべきだと思う... – Sipo

+0

ちょうど0に設定された秒でdatetimeとしてそれを格納します。とにかく秒を保存したいのですが? –

答えて

2

SQL-Server 2008+を使用している場合は、TIMEタイプを使用して秒をリセットし、選択時に無視します。

そうでない場合は、文字列(HH:MIを抽出する)または整数(00:00後に数えて)として保存することを検討できます。 @ destination-dataと同様に、SQL Serverで使用できる時間関数を使用することはできませんが、必要に応じて日付に戻すことができます。

+0

あなたは非時間形式で時刻を保存する場合は、直接SQL Serverの[タイム機能](https://msdn.microsoft.com/en-GB/library/ms186724.aspx)にアクセスすることはできません。 –

+0

はい、私は、SQLサーバーに – sagi

0

使用SQL Serverから入手できるFormat機能2012

select format(getdate(),'hh:mm') 

Insert into sometable 
(timepart) 
values 
(
format(getdate(),'hh:mm')) 

出力:

7時08

+0

2012の –

+0

おかげで、この@先データについてのコメントを追加しました...しかし、私は最初の場所での秒せずにそれを保存したいです。 – Sipo

+0

これは、日時の時間と分だけを格納します – TheGameiswar

1

ありませんが、このためのデータ型ではありません。最小値はtime(0)で、1秒に正確です。

SELECT 
    -- Returns time in the format hh:mm:ss 
    CAST(GETDATE() AS TIME(0)) 
; 

あなたは秒は常に00に等しいですが、私はこれが追加することになりますどのような値がわからないことを確認するためにcheck constraintを追加することができます。

0

常にあなたができる唯一のことは、私は私の中でこれを行うことが秒間ので、掲載されます(ともも保存されているミリ秒)を0

に設定される前に、値を編集することで保存されていますc#アプリケーションでは、すべての挿入の最後の更新が、datetimeデータ型をチェックしてからミリ秒をフィルタする1つのルーチンを通過します。

0

これを試してみてください:

SELECT FORMAT(GETDATE(),'HH:mm') 
2

を使用すると、2つの列の代わりに、このような各1のみに時間と分の使用を必要とするとき、私は思う:常にあなたが行うことができる唯一のことがある保存されている

Hour tinyint 
Minute tinyint 
関連する問題