aliwpf Ответов: 1

Как отобразить микросекунды текущего времени даты в C# ?


я хочу отобразить микросекунды текущего времени даты в c#. следующий код работает правильно
в моей windows 7.
currentDateString = string.Format("{0}", serverDate.ToString("yyyyMMddHHmmssffffff"));


но не работает корректно на сервере.
на дисплее сервера
yyyyMMddHHmmss000000

как я могу ее решить ?

Что я уже пробовал:

я пытаюсь следовать .
currentDateString = string.Format("{0}{1}", serverDate.ToString("yyyyMMddHHmmss"), serverDate.ToString("ffffff"));
and result is :
yyyyMMddHHmmss000000

1 Ответов

Рейтинг:
6

OriginalGriff

Когда я попробую это сделать:

DateTime serverDate = DateTime.Now;
string currentDateString = string.Format("{0}", serverDate.ToString("yyyyMMddHHmmssffffff"));
Console.WriteLine(currentDateString);
Я получаю то, что ожидаю:
20170527091049145901
yyyyMMddHHmmssffffff

Поэтому я бы предположил, что значение" serverDate", которое вы извлекаете (откуда, я не знаю), не имеет компонента ниже второго.
Используйте отладчик, чтобы посмотреть, что именно он содержит, и если свойство Millisecond равно 0, то именно поэтому оно печатается как "000000", когда вы ожидаете значение.
Затем вы можете посмотреть на источник DateTime, чтобы узнать, почему.


"как я могу получить микросекунды текущего времени даты с помощью T-sql ?"


Точно так же вы получаете любую другую информацию: просто считываете ее в переменную DateTime:
try
    {
    using (SqlConnection con = new SqlConnection(strConnect))
        {
        con.Open();
        using (SqlCommand cmd = new SqlCommand("SELECT TOP 5 InsertDate, GETDATE() FROM Videos", con))
            {
            DataTable dt = new DataTable();
            using (SqlDataReader reader = cmd.ExecuteReader())
                {
                while (reader.Read())
                    {
                    DateTime dt1, dt2;
                    dt1 = (DateTime)reader[0];
                    dt2 = (DateTime)reader[1];
                    string dt1s = string.Format("{0}", dt1.ToString("yyyyMMddHHmmssffffff"));
                    string dt2s = string.Format("{0}", dt2.ToString("yyyyMMddHHmmssffffff"));
                    Console.WriteLine("{0}:{1}", dt1s, dt2s);
                    }
                }
            }
        }
    }
catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
Когда я запускаю это, я получаю:
20120624125436677000:20170527113211523000
20120527083918187000:20170527113211523000
20120527084000500000:20170527113211523000
20160603074757507000:20170527113211523000
20141012123141300000:20170527113211523000
Что указывает на то, что тики SQL Server относятся к миллисекунде


aliwpf

мой источник даты и времени не содержит секунд, миллисекунд и микросекунд.
как я могу получить микросекунду текущего времени даты с помощью T-Sql (мой источник datetime)?

OriginalGriff

Пожалуйста!

aliwpf

как я могу получить микросекунды текущего времени даты с помощью T-sql ?

OriginalGriff

Ответ обновлен

aliwpf

отлично сработано.Большое спасибо

Venu Gopal Mulavana Kayamkulam

+5