Member 7932936 Ответов: 7

как присвоить нулевое значение datetime в C#.net


Привет
Как присвоить нулевое значение дате? По умолчанию моя дата и время 1/1/0001, но я хочу назначить дату и время для null. Как я могу присвоить нулевое значение datetime?

Я пробовал использовать этот код, но он не работает.
dt = Convert.ToDateTime(strposteddate);
strposteddate = dt.ToShortDateString();
if (strposteddate == "1/1/0001")
{
   strposteddate = null;
}

Suman Zalodiya

Пожалуйста, не могли бы вы сказать мне тип данных переменной dt и strposteddate, чтобы мы могли его уточнить.

7 Ответов

Рейтинг:
53

Wendelius

Вы определяете переменную datetime как nullable:

DateTime? dt = null;


Sergey Alexandrovich Kryukov

Правильно, мой 5-й. OP должен изучить основы типов .NET.
--СА

Wendelius

Спасибо, я согласен

Member 7932936

я уже определяю дату и время? dt=null;
но он принимает значение по умолчанию, то есть 1/1/0001

Wendelius

Если вы определяете datetime как nullable, то его значение по умолчанию равно null- ни одной даты. Особенно, когда вы явно установили переменную в null, значение по умолчанию даже не имеет значения.

Похоже, вы либо используете другую переменную, либо устанавливаете ее где-то еще. Используйте отладчик и с помощью часов наблюдайте за изменениями, происходящими в отношении этой переменной.

Рейтинг:
50

Prerak Patel

DateTime не является обнуляемым типом. Вы можете использовать Nullable<datetime> dt;


Member 7932936

Я уже использовал подобное

но он установил дату и время по умолчанию 1/1/0001

Sergey Alexandrovich Kryukov

Не путайте время по умолчанию с нулем. Null следует использовать для переноса семантики, если "неопределенное время, нет времени".
--СА

Sergey Alexandrovich Kryukov

Правильно, мой 5-й. Я бы предпочел более простой в использовании вариант, показанный Микой, хотя, пожалуйста, смотрите.
--СА

Рейтинг:
40

Abhijit Jana

Ну, вот вам и фундаментальный материал этой книги. nullable DateTime. DateTime сама структура не предоставляет нулевой опции. но мы можем сделать это nullable тип, который позволяет присвоить нулю значение datetime.

DateTime ? nullableDateTime = null ;
           if(nullableDateTime.HasValue)
           Console.WriteLine(nullableDateTime.Value.ToShortDateString());


Поскольку мой nullableDateTime установлен в Null, выше блока кода ничего не будет печататься.
Это приведет только к печати значения, если nullableDateTime имеет некоторое значение.

Приходите на минимальную дату,

var defaultDateTimeValue = default(DateTime);

Здесь defaultDateTimeValu будет ли это 1/1/0001 12:00:00 AM}
Но, для nullableType,

var defaultDateTimeValue = default(DateTime?);

значение defaultDateTimeValue должно быть null.

Я надеюсь, что это даст вам достаточно идей.


Рейтинг:
2

Anil Honey 206

dt = Convert.ToDateTime(strposteddate);
            strposteddate = dt.ToShortDateString();
            if (strposteddate ==null)
            {
              //allow something
            } 
            else
               
              // allow something


Member 7932936

если null

мой datetime установлен на 1/1/0001, но не принимает нулевое значение

Anil Honey 206

я не прочитал вопрос должным образом

Рейтинг:
2

future2015

Мы не можем присвоить нулевое значение datetime.
Я внес некоторые изменения в ваш код, чтобы он мог корректно работать.

пробовать
{
dt = преобразовать.Объект todatetime(strposteddate);
}
catch(FormatException)
{
Приставка.WriteLine ("{0} не в правильном формате", strpsoteddate);
strposteddate = "";
}


Рейтинг:
1

Member 7932936

мы не можем присвоить нулевое значение datetime

поскольку значение null принимает системную дату по умолчанию, то есть minimun date='1/1/0001'


Рейтинг:
1

vickey.bikramaditya

Передача нулевого значения в поле datetime

cmd1.Parameters.AddWithValue("@ups_delivery_date", SqlDbType.DateTime).Value = System.DBNull.Value;