如何在c#和SQL中格式化Datetime和datetime2以满足我的需求
本文关键字:datetime2 满足 需求 我的 Datetime SQL 格式化 | 更新日期: 2023-09-27 18:07:20
我对此很陌生,我使用MVC视图模型,具有Datetime
类型的属性:
namespace FP.WebUI.Models
{
public class AdminSessionsViewModel
{
NewSession _NewSession = new NewSession();
public NewSession NewSession { get { return _NewSession; } set { _NewSession = value; } }
public IEnumerable<Sessions> CurrentSessions { get; set; }
}
public class NewSession
{
[Required]
public string Title { get; set; }
public string Description { get; set; }
[Required]
public DateTime Date { get; set; }
}
}
我想要Date
属性像这样的格式:27/05/2013 06:44AM和相同的SQL数据库内。
我真的不知道如何在NewSession
类中配置Date
以自动在我的文本框中显示,当映射回实体框架时,将像这样保存在数据库中。
这是我的实体框架流畅API配置:
namespace FP.Domain.Configurations
{
public class SessionsConfig : EntityTypeConfiguration<Sessions>
{
public SessionsConfig()
{
ToTable("Sessions");
Property(p => p.Name).IsRequired();
Property(p => p.PhotosCount).IsRequired();
Property(p => p.CoverPhoto).IsRequired();
Property(p => p.Date).HasColumnType("datetime2").HasPrecision(0);
}
}
}
您需要为您的DateTime属性添加[DisplayFormat]
属性。这样就可以处理用户界面了。使用razor
[Required]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy hh:mm tt}", ApplyFormatInEditMode = true)]
public DateTime Date { get; set; }
您不需要控制日期时间如何存储在SQL server中-它将被存储为日期,而不是字符串。您可以在T/SQL中使用FORMAT()
函数来格式化存储过程中的日期等。如果你没有MSSQL 2012,你可以使用DATEPART()
或CONVERT()
函数