convertir - formato fecha c# dd/mm/yyyy
formato de fecha y hora en formato SQL usando C# (11)
El uso del formato de fecha y hora estándar "s" también garantizará la compatibilidad de internacionalización (MM / dd versus dd / MM):
myDateTime.ToString("s");
=> 2013-12-31T00:00:00
Opciones completas: (código: resultado de la muestra)
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
Compatible con .NET Framework: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0
Referencia: método DateTime.ToString
Estoy intentando guardar el formato de fecha y hora actual de C # y convertirlo a un formato de fecha de SQL Server como yyyy-MM-dd HH:mm:ss
así que puedo usarlo para mi consulta de Update
.
Este fue mi primer código:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");
La fecha de salida está bien, pero el tiempo siempre es "12:00:00", así que cambié mi código a lo siguiente:
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " +
myDateTime.TimeOfDay.ToString("HH:mm:ss");
Me dio un error de compilación "FormatException no fue manejado" y sugirió que necesito analizar. Así que intenté hacer esto con mi código según mi investigación aquí en staackoverflow:
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " +
myDateTime.Parse.TimeOfDay.ToString("HH:mm:ss");
o
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " +
myDateTime.tryParse.TimeOfDay.ToString("HH:mm:ss");
pero me está dando es un método que no es válido para el contexto dado. Traté de buscar soluciones a mi problema y actualmente estoy atascado durante dos horas. Todavía soy un poco nuevo en C #, ¿me pueden ayudar, por favor?
La respuesta correcta ya se le dio "parámetros de uso". Formatear una fecha y pasarla como una cadena a SQL-Server puede generar errores, ya que depende de la configuración de cómo se interpreta la fecha en el lado del servidor. En Europa, escribimos ''1.12.2012'' para indicar el 1 de diciembre de 2012, mientras que en otros países esto podría tratarse como el 12 de enero.
Al emitir declaraciones directamente en SSMS utilizo el formato yyyymmdd
que parece ser bastante general. No encontré ningún problema en las diversas instalaciones en las que trabajé hasta ahora.
Hay otro formato poco utilizado, que es un poco extraño pero funciona para todas las versiones:
select { d ''2013-10-01'' }
regresará el primero de octubre de 2013.
select { ts ''2013-10-01 13:45:01'' }
regresará el 1 de octubre a la 1:45:01 PM
Recomiendo utilizar parámetros y nunca formatee su propio código SQL pegando fragmentos de enunciados formateados propios. Es una entrada para inyección SQL y errores extraños (formatear un valor flotante es otro problema potencial)
La respuesta que estaba buscando fue:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");
También aprendí que puedes hacerlo de esta manera:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString(myCountryDateFormat);
donde myCountryDateFormat se puede cambiar para cumplir los cambios según el requisito.
Tenga en cuenta que la etiqueta "Esta pregunta puede tener una respuesta aquí:" no ha respondido realmente a la pregunta porque, como puede ver, usó un ".Fecha" en lugar de omitirlo. Es bastante confuso para los nuevos programadores de .NET
Por qué no saltarse la cadena por completo:
SqlDateTime myDateTime = DateTime.Now;
Si quiere actualizar una tabla con ese dateTime, puede usar su cadena sql como este ejemplo:
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());
Su problema está en la propiedad "Fecha" que trunca solo DateTime
to date. Podrías poner la conversión así:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); // <- No Date.ToString()!
Su problema está en la propiedad Date
que trunca solo DateTime
to date. Podrías poner la conversión así:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");
Tu primer código funcionará haciendo esto
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); //Remove myDateTime.Date part
prueba esto a continuación
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
si quieres almacenar la fecha actual en la tabla para que puedas usar
OBTENER LA FECHA();
o pasa esta función como un parámetro
p.ej. ''update tblname set curdate = GETDATE () donde colname = 123''
solo pones "T" + DateTime.Now.ToLongTimeString () + ''2015-02-23''