如何在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);
        }
    }
}

如何在c#和SQL中格式化Datetime和datetime2以满足我的需求

您需要为您的DateTime属性添加[DisplayFormat]属性。这样就可以处理用户界面了。使用razor

转换DateTime格式
[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()函数