Как мне конвертировать 06.08.2010 03:41:44 GMT + 00: 00 до mm/dd/yy время в mysql?
Я в основном хочу отсортировать этот столбец SentDate (данные заполняются из внешнего источника). Я также в порядке, чтобы сделать это в С#.
Если вы хотите преобразовать его в свой оператор select, используйте ниже:
SELECT DATE_FORMAT(date, '%m/%d/%y')
FROM TableName
Если вы хотите сделать это в коде.
DateTime dt = Convert.ToDateTime(mySqlCommand.ExecuteScalar());
string strDateTime = dt.ToString("MM/dd/yy");
Надеюсь, что это поможет.
Подождите. Вы хотите преобразовать его в формат mm/dd/yy или хотите отсортировать его по дате/времени? Эти два не способствуют друг другу.
Если столбец уже является столбцом datetime
в MySQL, то вы можете его сортировать в обычном режиме:
var query = db.MyTable.Where(...)
.OrderBy(row => row.SentDate);
Если столбец представляет собой строковый столбец (varchar
), вам необходимо будет преобразовать данные в объект datetime
при его чтении из базы данных, а затем отсортировать его на С#. Например:
var query = db.MyTable.Where(...)
.AsEnumerable()
.Select(row => new { row, Sent = DateTime.Parse(row.SentDate) })
.OrderBy(inf => inf.Sent);
Вызов AsEnumerable
приводит к тому, что данные извлекаются, поэтому синтаксический анализ DateTime и сортировка происходит на земле С#, а не на БД.
Один из способов преобразования datetime
в string
в описанном вами формате - явно использовать .ToString
:
datetime.ToString("MM/dd/yy")
Другой - использовать американско-американскую культуру:
datetime.ToString("d", CultureInfo.GetCultureInfo("en-US"))
Тем не менее, последний, по-видимому, использует однозначные месяцы.
Как только вы преобразуете a datetime
в такую строку, сортировка не имеет смысла, потому что вы будете сортировать ее по первой цифре месяца - никто не найдет это полезным.
Если вы хотите получить определенный формат для полей datetime, вы можете сделать что-то вроде этого:
select
concat(
month(date_field),
"/",
day(date_field),
"/",
year(date_field)
)
as
formatted_date
from
myTable;
order by
date_field asc;
Тем не менее, я не уверен, что это работает с другими типами полей - возможно, это так, но можно попробовать.
DATETIME
и жизнь станет проще для вас.