MySQL Формат даты Вопрос

0

Как мне конвертировать 06.08.2010 03:41:44 GMT + 00: 00 до mm/dd/yy время в mysql?

Я в основном хочу отсортировать этот столбец SentDate (данные заполняются из внешнего источника). Я также в порядке, чтобы сделать это в С#.

  • 0
    Сохраните эти даты как тип DATETIME и жизнь станет проще для вас.
Теги:
datetime

3 ответа

1
Лучший ответ

Если вы хотите преобразовать его в свой оператор select, используйте ниже:

SELECT DATE_FORMAT(date, '%m/%d/%y')
FROM   TableName

Если вы хотите сделать это в коде.

DateTime dt = Convert.ToDateTime(mySqlCommand.ExecuteScalar());
string strDateTime = dt.ToString("MM/dd/yy");

Надеюсь, что это поможет.

  • 0
    SELECT DATE_FORMAT ('06 авг. 2010 г. 03:41:44 GMT + 00: 00 ','% m /% d /% y ') ошибка возврата - неверное время и дата
  • 0
    И это значение исходит из столбца в таблице?
Показать ещё 1 комментарий
0

Подождите. Вы хотите преобразовать его в формат 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 в такую ​​строку, сортировка не имеет смысла, потому что вы будете сортировать ее по первой цифре месяца - никто не найдет это полезным.

  • 0
    попробую
0

Если вы хотите получить определенный формат для полей datetime, вы можете сделать что-то вроде этого:

select 
    concat(
        month(date_field),
        "/",
        day(date_field),
        "/",
        year(date_field)
    ) 
as 
    formatted_date 
from 
    myTable;
order by
    date_field asc;

Тем не менее, я не уверен, что это работает с другими типами полей - возможно, это так, но можно попробовать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню