Я пытаюсь сохранить текущий формат даты и времени из C# и преобразовать его в формат даты в SQL сервере, так как гггг-ММ-ДД чч:мм:СС
, так что я могу использовать его для моей "обновление" запроса.
Это был мой первый код:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");
Выход на сегодняшний день-это хорошо, но время всегда на "12:00:00" так я изменил мой код следующим образом:
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " +
myDateTime.TimeOfDay.ToString("HH:mm:ss");
Он дал мне эту ошибку при компиляции:
formatexception версия обработано
И предложил мне нужно разобрать. Поэтому я старался делать это, чтобы мой код согласно моим исследованиям здесь на сайте StackOverflow:
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " +
myDateTime.Parse.TimeOfDay.ToString("HH:mm:ss");
или
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " +
myDateTime.tryParse.TimeOfDay.ToString("HH:mm:ss");
Но это'ы говоришь мне, что это'ы метод, который не является допустимым для данного контекста. Я пытался искать решение моей проблемы и я застрял на два часа. Я'м все еще немного нового в C#, вы можете помочь мне, пожалуйста?
попробуйте это ниже
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
в Используя стандартный формат даты и времени на "Ы" - а также обеспечить совместимость интернационализации (ММ/ДД против ДД/ММ):
myDateTime.ToString("s");
=> 2013-12-31T00:00:00
Полные Параметры: (код: результат выборки)
d: 6/15/2008
D: Sunday, June 15, 2008
f: Sunday, June 15, 2008 9:15 PM
F: Sunday, June 15, 2008 9:15:07 PM
g: 6/15/2008 9:15 PM
G: 6/15/2008 9:15:07 PM
m: June 15
o: 2008-06-15T21:15:07.0000000
R: Sun, 15 Jun 2008 21:15:07 GMT
s: 2008-06-15T21:15:07
t: 9:15 PM
T: 9:15:07 PM
u: 2008-06-15 21:15:07Z
U: Monday, June 16, 2008 4:15:07 AM
y: June, 2008
'h:mm:ss.ff t': 9:15:07.00 P
'd MMM yyyy': 15 Jun 2008
'HH:mm:ss.f': 21:15:07.0
'dd MMM HH:mm:ss': 15 Jun 21:15:07
'\Mon\t\h\: M': Month: 6
'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00
Поддерживается .Чистая рамки: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0 Ссылка: [`Типа Datetime.Метод ToString Метод][1]
[1]: http://msdn.microsoft.com/en-us/library/zdtaw1bw(в=против 110).аспн
Правильный ответ уже был дан на "параметров" по. Форматирование даты и передавая его в виде строки SQL-сервера может привести к ошибкам, поскольку это зависит от параметров, как дата интерпретируется на стороне сервера. В Европе, мы пишем '1.12.2012' для обозначения 1-го декабря 2012 года, в то время как в других странах это может рассматриваться как 12 января.
При оформлении заявления непосредственно в SSMS я использовать формат ггггммдд
, которые, кажется, быть достаточно общим. Я не возникнут какие-либо проблемы на различных установках Я до сих пор работал по.
Есть еще один редко используемый формат, который немного странный, но работает для всех версий:
select { d '2013-10-01' }
вернется первого октября 2013 года.
select { ts '2013-10-01 13:45:01' }
вернусь 1 октября, 1:45:01 вечера
Я настоятельно рекомендуем использовать параметры, и никогда формат свой собственный SQL-код при вставке вместе доморощенные отформатированные фрагменты заявлении. Это запись для SQL-инъекции и какие-то странные ошибки (форматирование числа с плавающей точкой-это еще одна потенциальная проблема)
Ваш первый код будет работать при этом
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); //Remove myDateTime.Date part
Ваша проблема в "Дата" и имущество, которое усекает Датавремя
на сегодняшний день только.
Вы могли бы поставить конверсия такой:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); // <- No Date.ToString()!
Ответ, который я искал, было:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");
Я'вэ узнал, что вы можете сделать это так:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString(myCountryDateFormat);
где myCountryDateFormat могут быть изменены, чтобы встретить изменения в зависимости от требований.
Обратите внимание, что помеченные "на этот вопрос уже есть ответ здесь:" есть на самом деле не ответил на вопрос, потому что, как вы можете видеть это раньше а ".Дата" и вместо того, чтобы опустить его. Это'ы довольно запутанным для новых программистов .Чистая
если вы хотите сохранить текущую дату в таблицу, так что вы можете использовать
функции getdate();
или передать эту функцию как параметр
например. 'tblname обновление установить curdate=функции getdate (), где colname=123'
Я думаю, что проблема была двумя односпальными недостающих кавычках.
Это в SQL я бегу к MSSMS:
WHERE checktime >= '2019-01-24 15:01:36.000' AND checktime <= '2019-01-25 16:01:36.000'
Как вы можете видеть, что есть две одинарные кавычки, так что ваш код должен быть:
string sqlFormattedDate = "'" + myDateTime.Date.ToString("yyyy-MM-dd") + " " + myDateTime.TimeOfDay.ToString("HH:mm:ss") + "'";
Используйте одинарные кавычки для каждой строки в MSSQL или даже в MySQL. Я надеюсь, что это помогает.
Ваша проблема в свойство "дата", что усекает Датавремя
на сегодняшний день только. Вы могли бы поставить конверсия такой:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");
Еще одно решение для передачи даты и времени из C# в SQL-сервере, независимо от настроек языка SQL сервер
якобы, что региональные параметры показывают дату как ДД.Мм. гггг (немецкий стандарт '104') тогда
DateTime myDateTime = DateTime.Now;
string sqlServerDate ="CONVERT("date,'"+myDateTime+"',104)";
переходит на C# переменная типа datetime в SQL переменную типа дата-сервера, с учетом сопоставления в соответствии с "104" и правила . Даты в SQL-сервер получает гггг-ММ-ДД
Если региональные параметры дисплея Датавремя по-разному, затем использовать соответствующий совпадающие с сервера SQL преобразовать таблицу
подробнее о правилах: https://www.techonthenet.com/sql_server/functions/convert.php
только ты ставишь на "Т" в+Датавремя.Сейчас.ToLongTimeString()+ '2015-02-23'
Если вы хотите обновить таблицу с типом datetime, вы можете использовать SQL-строку, как в этом примере:
int fieldId;
DateTime myDateTime = DateTime.Now
string sql = string.Format(@"UPDATE TableName SET DateFieldName='{0}' WHERE FieldID={1}, myDateTime.ToString("yyyy-MM-dd HH:mm:ss"), fieldId.ToString());