.net DateTime объект, обеспечивающий форматирование MM / DD / YYYY - PullRequest
2 голосов
/ 07 ноября 2011

Похоже, что объект .net DateTime по умолчанию имеет любой формат, установленный на компьютере.Поскольку я из Великобритании, это означает, что объектом DateTime является ДД / ММ / ГГГГ.

Как правило, это нормально, но я пытаюсь использовать объект DateTime, чтобы поместить текущее время в запись в базе данных Access.Для доступа (или SQL вообще не знаю) требуется, чтобы дата была отформатирована в формате ММ / ДД / ГГГГ.

Можно ли с помощью объекта DateTime просто отформатировать дату вФормат MM / DD / YYYY, или мне придется преобразовать в строку, переключить строку и вставить это?

Ответы [ 4 ]

5 голосов
/ 07 ноября 2011

Если вы вставляете в базу данных, не используйте строку даты.Используйте объект Parameter и присвойте Value объект date.

для доступа

string mystatment = "Insert into TableName (column1, datecolumn) values (?,?)"

OleDbCommand cmd = conn.CreateCommand();
cmd.Commandtext = mystatement;
cmd.Parameters.AddWithValue("@column1", mycolumn1variable);
cmd.Parameters.AddWithValue("@datecolumn", yourDateTimeVariable);

если вы правильно делаете это с рабочим кодом, убедитесь, что у вас есть обработка исключений и т. Д.

using (OleDbConnection conn = new OleDbConnection("connection string"))
{
    using (OleDbCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "Insert into TableName (column1, datecolumn) values (?,?)";

        OleDbParameter param;
        param = new OleDbParameter("name",  OleDbType.VarChar, 36); // if you know the size of the column specify it
        param.Value = mycolumn1variable;
        cmd.Parameters.Add(param);

        param = new OleDbParameter("mydate", OleDbType.Date); // if you know the size of the column specify it
        param.Value = yourDateTimeVariable;
        cmd.Parameters.Add(param);

        conn.Open();
        cmd.ExecuteNonQuery(); //etc
    }
}

для sql вы используете именованный @параметры вместо?в своем утверждении и используйте вместо этого SqlCommand.

Если это для отображения на экране, учитывайте настройки и формат пользователей в зависимости от их культуры.

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

Использование ToString метод DateTime структура:

using System;
using System.Globalization;

string s = DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(s);
0 голосов
/ 07 ноября 2011

Вы можете сделать что-то подобное, когда используете класс DateTime:

DateTime yourDate = DateTime.Now;
Console.WriteLine("Your Date: {0}", yourDate.ToString("MM/dd/yyyy"));
0 голосов
/ 07 ноября 2011

Вы можете вызвать DateTime.ToString ("MM / dd / yyyy"), чтобы вам не приходилось переключать его

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