Как получить записи даты и времени в формате «дд / мм / гггг ч: м: с» ОТ SQL Server 2005? - PullRequest
1 голос
/ 08 ноября 2011

Я хочу получить записи с SQL Server 2005 в формате даты и времени, например, "дд / мм / гггг ч: м: с"

Моя база данных имеет формат даты и времени по умолчанию

AttLogId int
...
DownloadLog datetime

Я пытаюсь получить дату и время следующим образом:

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

, но я получаю только дату, а не время.

Ответы [ 3 ]

3 голосов
/ 08 ноября 2011

Я предлагаю вам не пытаться получить значения в определенном формате строки.Получите их как DateTime значения, а затем отформатируйте их в коде .NET, используя DateTime.ToString("dd/MM/yyyy H:m:s").

. Это почти всегда .здесь) как можно дольше, только преобразование в текст, когда вам действительно нужно.Таким образом, ваш SQL должен быть просто:

SELECT AttLogId, DownloadLogDate FROM  AttLog
ORDER BY DownloadLogDate

Способ получения данных будет зависеть от того, как вы говорите с SQL (например, LINQ to SQL, используя SqlDbReader и т. Д.).Но вы должны иметь возможность получить его как DateTime и затем отформатировать его локально.Это облегчит тестирование, отладку, обеспечит больший контроль над культурными аспектами (разделители даты, возможно, указание стандартного спецификатора вместо пользовательского и т. Д.).

1 голос
/ 08 ноября 2011

это потому, что вы используете 103, поэтому он даст только дату.если вы хотите больше формата, проверьте это: http://msdn.microsoft.com/en-us/library/ms187928.aspx

0 голосов
/ 08 ноября 2011

В зависимости от необходимости, вы можете попробовать это

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

Примечание: первый - для даты, а второй - для времени в H: M: S

надеюсь, это поможет вам ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...