2010-11-23 20 views
0

SQL Server 2008を使用していて、テーブルの1つに列があり、その列にデータ型があるデータベースファイル(mydata.mdf)があります。 (時間)。SQL Server 2008で12時間形式を指定する方法

私は(VS2010を使用して)私のWPF-C#プロジェクトに、このデータベースファイルを追加しましたが、次のように、私は問題を抱えていたし、その:

この(時間)の列は、24時間システムで時間を扱いますが、私はしたいです私のアプリケーションで(12時間)システムを使用するには、SQL server2008で12時間のシステム時間を定義する方法があります。

もしそうでなければ、それを処理する最善の方法は何だと思いますか?

私は急いでいると私はそれを把握することはできませんのでPleeeeeeeeeeeaseはできるだけ早く私を助け

...

答えて

2

データベース内の時間は、「フォーマットさ」ではありません。これは、サポートされている精度のレベルまで、その日の各瞬間を表すことができる内部形式(Googleでは可能ですが、気にする必要はありません)で表されます。

値は、アプリケーションが文字列に変換してユーザーに表示する場合にのみフォーマットされ、ユーザーはこれを完全に制御できます。

CLR DateTimeクラスのインスタンスに時間を読み込んだ場合、value.ToString( "h:mm:ss tt")を使用して12時間(日付を省略)として表示できます。カスタムフォーマットオプションは、hereと記載されています。

+0

の日付部分を削除し、その後、12時間クロックを使用して文字列として日付をフォーマット明らかにそれは書式設定の問題です: – ykatchou

1

答えは本当にできませんが、心配しないでください、問題ではありません。 C#コードで日付を書式設定します。

重要な点は、日付と時刻が絶対値であることです。これはSQLに保存するもので、12時間と24時間の時計は単に表示の詳細です。たとえば、13:00と午後1:00は同等です

DateTime myDateTime = GetTheTimeFromSomeMethod(); 
myDateTime.ToString("h:mm:ss tt"); 

はガイド、This is a good oneがたくさんあるが、他のたくさんthis one

+0

答えはありがたいですが、私の問題は、リストビューがあり、リストビューのitemsourceがデータベース – Mouayad

+0

からのクエリで、クエリを変更できません。 – Mouayad

+0

リストビューは正しく??? – Mouayad

0

はそれをしない例です:、C#で、その後、どのようにSQLを格納し、それを心配しないでください、それを表示するには、次の使用データベースからフォーマットする必要がありますか? C#とWPFの両方には、多くの組み込みの日付形式オプションが用意されています。たとえば、ラベルのContentStringFormatプロパティをチェックします。

データベースでそれを行う必要がある場合は、ここで

に動作します厄介な回避策があるそれはそれ

select right(convert(varchar, cast('1/1/2010 23:59:59' as datetime), 100), 
charindex(' ', reverse(convert(varchar, cast('1/1/2010 23:59:59' as datetime), 100)))-1) 
関連する問題