sistema - obtener solo la hora de un datetime c#
almacenar solo la fecha en la base de datos, no la porciĆ³n de tiempo C# (5)
Cambiar el tipo de datos en la base de datos desde el tipo Date
y Date
¿De verdad es un problema para ti? Es posible que desee tiempo allí en algún momento,
Tengo una clase de prueba y una propiedad ExecutionDate
que almacena solo la fecha, pero cuando utilizamos [DataType(DataType.Date)]
que también almacena la porción de tiempo en la base de datos, pero solo quiero la parte de la fecha.
public class Test
{
[Key]
public int Id { get; set; }
[DataType(DataType.Date)]
public DateTime ExecutionDate { get; set; }
}
¿Hay alguna forma de almacenar solo la parte de la fecha en el tiempo en db usando Entity Framework? Por favor, ayúdame....
He agregado una instantánea cuando uso [DataType(DataType.Date)]
que almacena la parte de tiempo 00:00 Quiero eliminar eso
Como dijo David anteriormente, una vez que traiga esos datos a la aplicación, será un DateTime con la marca de tiempo agregada en la fecha. Este sería el mismo resultado si almacenó la fecha como una cadena y utilizó Convert para cambiar a DateTime para cualquier manipulación:
string date = "2015-11-17";
var dateTime = Convert.ToDateTime(date);
A menos que desee manipular cadenas en su aplicación para evitar la marca de tiempo, solo puede trabajar con DateTime. Sin embargo, para fines de visualización, siempre puede formatear la fecha y eliminar la marca de tiempo:
var dateTime = DateTime.Now;
var formatDate = dateTime.ToString("yyyy-MM-dd");
Su columna debe estar actualmente en datetime
ya que la parte del tiempo se muestra en su captura de pantalla. En el servidor SQL no se mostrará tiempo si solo se trata de una columna de tipo de date
. No hay ningún tipo de date
en C #, solo DateTime
. Pero está bien, cuando recuperas fechas del db, las partes del tiempo serán todas 00:00:00. Solo asegúrese de que su tipo de columna en el db sea "fecha" y no "fecha y hora".
alter table tableName alter column ExecutionDate date
O haga clic con el botón derecho en la tabla, diseñador, cambie el tipo de columna manualmente.
Cambie DateTime a nvarchar (10) en la base de datos si usa DateTime en la base de datos 00.00.00 será asignado automáticamente por la base de datos
string date = DateTime.Today.ToShortDateString();
Creo que está intentando especificar el tipo de columna de la base de datos. Puede usar anotaciones de datos como se describe en este artículo.
Aquí hay un ejemplo :
[Table("People")]
public class Person
{
public int Id { get; set; }
[Column(TypeName = "varchar")]
public string Name { get; set; }
[Column(TypeName="date")]
public DateTime DOB { get; set; }
}
Por defecto, la cadena se traduce a nvarchar, hemos cambiado eso aquí. También Datetime (esto es lo que preguntaste, supongo) que por defecto se asigna al datatime en el servidor sql, se cambia a la date
que almacena solo la parte de la fecha y no la parte del tiempo de un valor de DateTime
.