Я бегу запрос, как это:ВЫБРАТЬ указать формат DATETIME
SELECT dt, x, y
FROM mytable
WHERE dt BETWEEN '2015-25-05 00:00:00.000' AND '2015-25-05 12:00:00.000';
dt
является DateTime и вставить в формате 'YYYY-MM-дд чч: мм: ss.fff'. Мой выходной dt-формат - только «yyyy-dd-MM hh: mm: ss».
Мне также нужны миллисекунды на моем выходе. Пожалуйста, кто-нибудь скажет мне, как я их получу? Я сожалею, что я не мог найти этот синтаксис сам ...
EDIT:
Я думал, что проблема была легче, чем это. Я попытался использовать
SELECT CONVERT(DATETIME, dt,109)
и он хорошо работает в MSSQL-Management-Studio.
Но я хочу использовать dt-значение в C# в Visual Studio 2013. Я запускаю запрос и записываю вывод в файл.
Я использую System.Data.SqlClient.SqlConnection, System.Data.SqlClient.SqlCommand и System.Data.SqlClient.DataReader, чтобы получить значения, как это:
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand(query, conn);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
//write one line; column is the number of columns
for (int n = 0; n < column; n++)
{
writer.Write(reader[n].ToString());
}
writer.WriteLine("");
}
Я изменил запрос в этой программе и использовал CONVERT-функцию, но я до сих пор не получаю миллисекунды ... Я думаю, что это скорее проблема C#/Visual Studio.
РЕШЕНИЕ:
Я добавил это писать DateTime:
if(n==0)
writer.Write(reader.GetDateTime(0).ToString("yyyy-MM-ddThh:mm:ss,fff"));
Спасибо
новообращенный (NVARCHAR, дт, 121) – mohan111
[Ссылка] (http://stackoverflow.com/questions/715432/why-is-sql-server-losing-a-millis econd) это будет полезно. – MeshBoy
121 будет yyyy-mm-dd ... и он хочет yyyy-dd-mm. Я не думаю, что вы можете это сделать без разбора строки и ее создания. Реальный вопрос: где используется этот тип данных? Если в каком-то коде или отчете необходимо форматировать – Juan