Primero, parece estar confundido acerca de la diferencia entre un DateTime
objeto y el String
formateado representación de ese DateTime
objeto. Now
, o incluso mejor, DateTime.Now
ya es un DateTime
objeto, por lo que no tiene sentido formatearlo como una cadena y luego analizar la cadena para devolverla a un DateTime
valor de nuevo. Entonces, simplemente puede hacer esto para lograr lo mismo:
Dim timestamp As Date = Date.Now
Tenga en cuenta que en VB.NET, Date
es una palabra clave que es la abreviatura de DateTime
, igual que Integer
es "abreviatura" de Int32
.
En segundo lugar, no debe agregar DateTime
valores directamente en la cadena de comando SQL. Debería estar usando una consulta parametrizada. Cuando agrega el DateTime
valor a la cadena SQL, debe asegurarse de que tenga el formato correcto (llamando a timestamp.ToString(...)
). Desafortunadamente, sin embargo, qué formato es el adecuado dependerá completamente de la configuración cultural del servidor. Por lo tanto, es mucho mejor usar un parámetro DB, establecer el valor del parámetro igual al DateTime
real y luego deje que el proveedor de base de datos haga la conversión por usted.