Как установить только дату в столбце DataTable типа DateTime WEB - PullRequest
5 голосов
/ 02 июня 2011

enter image description here Привет всем,

Мой вопрос прост, но, пожалуйста, имейте в виду, что я не привязываю его ни к какой сетке или к любому элементу управления ASP.NET У меня есть свой собственный элемент управления сеткой, и я хочусохраните его как столбец DateTime для сортировки.

Я создаю таблицу данных с типом столбца DateTime.

DataTable data = new DataTable();
data.Columns.Add("Invoice Date", typeof(DateTime));
DataRow dr = data.NewRow();
dr[0] = DateTime.Now;

//Adding filled row to the DataTable object
dataTable.Rows.Add(dr);

Когда значение отображается на странице ASP.NET, оно выглядит примерно так:

"2/28/2011 12:00:00 AM"

У меня есть 2 столбца, как это, в 1 столбце я хочу показать только дату, а в другом столбце я хочу показать дату как «декабрь 2011», эти форматы могут быть достигнуты, если я использую DataColumn с типом строки, но в этом случае сортировкане работает правильно.

Пожалуйста, помогите.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 02 июня 2011

Прежде всего взять только часть даты

dr[0] = DateTime.Now.Date;

Второй использовать

DateTime.ToShortDateString

    <asp:Label ID="Label1" runat="server" Text='<%# 
((DateTime)Eval("ItemValue")).ToShortDateString() %>'></asp:Label>

метод, когдазначение привязки

РЕДАКТИРОВАТЬ

Не уверен, но вы можете проверить этот ответ, может помочь решить вашу проблему: Можно ли отформатировать столбец датыDataTable?

1 голос
/ 02 июня 2011

Вы, кажется, смешиваете свои концепции.Цель базы данных и таблицы внутри нее - хранить данных, а не форматировать ее.Это детали реализации, как именно это хранится.Точно так же, как вас не волнует, использует ли таблица данных UTF-8 или UTF-16 для хранения ваших строк, вам не важно, в каком формате хранится дата. В этом случае она почти наверняка сохраняется как количество наносекунд.с 12:00 полуночи, 1 января, 0001 г. н. э. То есть, если вы действительно покопаетесь в двоичном формате базы данных, вы найдете эти наносекунды.Страница ASP.NET, для отображения данных. Это , где вы принимаете решения о форматировании.

Один уровень пользовательского интерфейса - это любое программное обеспечение, которое вы используете для просмотра базы данных.Это программное обеспечение преобразует некоторое количество наносекунд, которое является внутренним форматом хранения, в строку «28.02.2011, 12:00:00 AM».Это происходит потому, что это формат по умолчанию для отображения точек во времени.

Слой пользовательского интерфейса, который вы кодируете - тот, который вы имеете под контролем - сейчасНужно выбрать, как it преобразует эти наносекунды в текст.Если он идет по умолчанию, он будет отображать «28.02.2011, 12:00:00».Но если вы не хотите использовать значение по умолчанию, вам нужно указать это.Ответ Pranay Rana дает представление о том, как это сделать. В этом весь смысл вашего пользовательского интерфейса .

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