2011-11-08 5 views
1

私はこのような日時形式でSQL Serverの2005年からレコードを取得したい「DD/MM/YYYYの時間:分:秒」SQL Server 2005から "dd/mm/yyyy h:m:s"形式でdatetimeレコードを取得する方法は?

私のデータベースの日付は、私がしようとしているデフォルトの日時書式

AttLogId int 
... 
DownloadLog datetime 

です次のような日時を取得します。

SELECT AttLogId ,convert(varchar,DownloadLogDate,103) FROM AttLog 
ORDER BY DownloadLogDate 

ただし、私は時刻ではなく日付のみを取得します。

+0

[this blogpost](http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql- server-2005 /)をAnubhav Goyalから入手しました。 :) –

答えて

3

特定の文字列形式で値を取得しようとしないことをお勧めします。 DateTimeの値を取得し、DateTime.ToString("dd/MM/yyyy H:m:s")を使用して.NETコードでフォーマットします。

ほとんど常にのデータを「自然な」データタイプ(ここでは日付/時刻)にできるだけ長く保持し、本当に必要なときにのみテキストに変換する価値があります。だからあなたのSQLだけで次のようになります。

SELECT AttLogId, DownloadLogDate FROM AttLog 
ORDER BY DownloadLogDate 

あなたがしてデータを取り出す方法(SqlDbReaderなどを使用して、SQLに例えばLINQ)あなたはSQLに話しているかに依存します。しかし、それをDateTimeとして入手し、それをローカルでフォーマットする必要があります。これにより、テストが容易になり、デバッグが容易になり、文化的側面(日付区切り、おそらくカスタム指定ではなく標準指定を指定するなど)をより詳細に制御できます。

+0

私に助けてもらえませんか質問するように助けてください、このようなErroのように=この申し訳ありません、私たちはもはやこのアカウントからの質問を受け入れていません。詳細はhttp://goo.gl/C1Kwuをご覧ください。 – Jig12

+0

@ JigJet12:そのページのアドバイスに従うことをお勧めします。 –

+0

ok私はまずそれを試します – Jig12

0

を、uはこの

SELECT AttLogId , convert(varchar(10),DownloadLogDate,103) +' '+ convert(varchar(8),DownloadLogDate,108) FROM AttLog ORDER BY DownloadLogDate 

注意を試すことができます:firstone日付と1秒間では、Hの時間のためである:M:S

願っています。

+0

::ありがとう、私はすでにそれを持ってあなたの答えは同じです:) – Jig12

関連する問題