C# 如何将日期时间仅定为日期

C# 如何将日期时间仅定为日期,c#,C#,这是我的看法 SELECT AmenityValidDatesPriceID, AmenityID, AmenityValidDatesFrom, AmenityValidDatesTo, AddedDate, LastModifyDate, AddedUser, LastModifyUser, IsDeleted FROM dbo.DataManagement_Hotels_Amenities_Amenit

这是我的看法

SELECT        AmenityValidDatesPriceID, AmenityID, AmenityValidDatesFrom, AmenityValidDatesTo, AddedDate, LastModifyDate, AddedUser, LastModifyUser, 
                         IsDeleted
FROM            dbo.DataManagement_Hotels_Amenities_AmenityValidDatesPrice
WHERE        (IsDeleted = 0)
它返回我amentityvaliddatesfrom,amentityvaliddatesto作为datetime

在前端,我只需要约会

    public List<BLL.Entities.DataManagement_Hotels_Amenities_AmenityValidDatesPrice> SelectByAmenityID(int ID)
            {
                DAL.DynamicSearchViewDataContext Viewcontext = new DAL.DynamicSearchViewDataContext();
                DAL.SelectSectionDataContext SpContext = new DAL.SelectSectionDataContext();
                var Query = (from car in Viewcontext.View_DataManagement_Hotel_Amenities_Dates
                             where car.AmenityID.Equals(ID)
                             select new BLL.Entities.DataManagement_Hotels_Amenities_AmenityValidDatesPrice
                             {
                                 AmenityID = (int)car.AmenityID,
                                 //AmenityValidDatesFrom = (DateTime)car.AmenityValidDatesFrom,
                                 //AmenityValidDatesTo = (DateTime)car.AmenityValidDatesTo

                                 AmenityValidDatesFrom = ((DateTime)car.AmenityValidDatesFrom).Date,
                                 AmenityValidDatesTo = ((DateTime)car.AmenityValidDatesTo).Date


                             }).ToList<BLL.Entities.DataManagement_Hotels_Amenities_AmenityValidDatesPrice>();
                return Query;

            }
public List selectbyamendityid(int-ID)
{
DAL.DynamicSearchViewDataContext Viewcontext=新建DAL.DynamicSearchViewDataContext();
DAL.SelectSectionDataContext SpContext=新建DAL.SelectSectionDataContext();
var Query=(来自Viewcontext.View\数据管理\酒店\设施\日期中的汽车
其中汽车修正ID等于(ID)
选择新的BLL.Entities.DataManagement\u Hotels\u communications\u amendityValidDatesPrice
{
修正项ID=(int)car.amentityID,
//AmentityValidDatesFrom=(日期时间)car.AmentityValidDatesFrom,
//AmentityValidDataTesto=(日期时间)car.AmentityValidDataTesto
amendityValidDatesFrom=((日期时间)car.amendityValidDatesFrom).日期,
amendityvaliddatesto=((日期时间)car.amendityvaliddatesto.Date
}).ToList();
返回查询;
}
这是我的密码

它给

隐式转换错误


请更改您的视图,如下所示:

SELECT  AmenityValidDatesPriceID,
        AmenityID,
        CONVERT(VARCHAR, AmenityValidDatesFrom,101) AS AmenityValidDatesFrom,
        CONVERT(VARCHAR, AmenityValidDatesTo,101) AS AmenityValidDatesTo,
        CONVERT(VARCHAR, AddedDate,101) AS AddedDate,
        CONVERT(VARCHAR, LastModifyDate,101) AS LastModifyDate,
        AddedUser,
        LastModifyUser,
        IsDeleted
FROM    dbo.DataManagement_Hotels_Amenities_AmenityValidDatesPrice
WHERE   IsDeleted = 0
它应该会起作用

更新:

需要进行空检查

public List<BLL.Entities.DataManagement_Hotels_Amenities_AmenityValidDatesPrice> SelectByAmenityID(int ID)
{
    DAL.DynamicSearchViewDataContext Viewcontext = new DAL.DynamicSearchViewDataContext();
    DAL.SelectSectionDataContext SpContext = new DAL.SelectSectionDataContext();
    var Query = (from car in Viewcontext.View_DataManagement_Hotel_Amenities_Dates
                 where car.AmenityID.Equals(ID)
                 select new BLL.Entities.DataManagement_Hotels_Amenities_AmenityValidDatesPrice
                 {
                     AmenityID = (int)car.AmenityID,
                     if (car.AmenityValidDatesFrom != null && car.AmenityValidDatesFrom.ToString() !=  "")
                     {
                        AmenityValidDatesFrom = car.AmenityValidDatesFrom.Date
                     },
                     if (car.AmenityValidDatesTo != null && car.AmenityValidDatesTo.ToString() !=  "")
                     {
                        AmenityValidDatesTo = car.AmenityValidDatesTo.Date
                     }
                 }).ToList<BLL.Entities.DataManagement_Hotels_Amenities_AmenityValidDatesPrice>();
    return Query;
}
public List selectbyamendityid(int-ID)
{
DAL.DynamicSearchViewDataContext Viewcontext=新建DAL.DynamicSearchViewDataContext();
DAL.SelectSectionDataContext SpContext=新建DAL.SelectSectionDataContext();
var Query=(来自Viewcontext.View\数据管理\酒店\设施\日期中的汽车
其中汽车修正ID等于(ID)
选择新的BLL.Entities.DataManagement\u Hotels\u communications\u amendityValidDatesPrice
{
修正项ID=(int)car.amentityID,
if(car.amendityvaliddatesfrom!=null&&car.amendityvaliddatesfrom.ToString()!=“”)
{
amendityValidDatesFrom=car.amendityValidDatesFrom.Date
},
if(car.amendityvaliddatesto!=null&&car.amendityvaliddatesto.ToString()!=“”)
{
amendityvaliddatesto=car.amendityvaliddatesto.Date
}
}).ToList();
返回查询;
}
试试这个

SELECT  AmenityValidDatesPriceID ,
        AmenityID ,
        CONVERT(VARCHAR(10), AmenityValidDatesFrom, 103) AS AmenityValidDatesFrom ,
        CONVERT(VARCHAR(10), AmenityValidDatesTo, 103) AS AmenityValidDatesTo ,
        CONVERT(VARCHAR(10), AddedDate, 103) AS AddedDate ,
        CONVERT(VARCHAR(10), LastModifyDate, 103) AS LastModifyDate ,
        AddedUser ,
        LastModifyUser ,
        IsDeleted
FROM    dbo.DataManagement_Hotels_Amenities_AmenityValidDatesPrice
WHERE   IsDeleted = 0

它将以“dd/mm/yyyy”格式给出日期。如果要以“mm/dd/yyyy”格式获取日期,请使用101而不是103

使用此视图保留
DATETIME
数据类型,同时删除时间部分:

SELECT  AmenityValidDatesPriceID ,
        AmenityID ,

        DATEADD(D, 0, DATEDIFF(D, 0, AmenityValidDatesFrom)) AS AmenityValidDatesFrom
        DATEADD(D, 0, DATEDIFF(D, 0, AmenityValidDatesTo)) AS AmenityValidDatesTo
        DATEADD(D, 0, DATEDIFF(D, 0, AddedDate)) AS AddedDate
        DATEADD(D, 0, DATEDIFF(D, 0, LastModifyDate)) AS LastModifyDate

        AddedUser ,
        LastModifyUser ,
        IsDeleted
FROM    dbo.DataManagement_Hotels_Amenities_AmenityValidDatesPrice
WHERE   IsDeleted = 0

你的问题是什么?您的消息错误是什么?您使用的是sql server还是其他?可能与数据类型是什么
car重复。是否从
修改验证数据?当您得到错误时,它的值是什么?参数“value”的类型错误。应为“System.DateTime”。实际的'System.Nullable'1[System.DateTime]'。我遇到此错误所有日期列中是否有空单元格或空值单元格?如果有空,则只有amendityValidDatesFrom=((DateTime)car.amendityValidDatesFrom).日期,amendityValidDatesTo=((DateTime)car.amendityValidDatesTo).日期,这两条语句将给您错误。我修改了视图。当我再次尝试获取数据时,代码中显示此错误,参数“value”的类型错误。应为“System.DateTime”。实际的“System.Nullable`1[System.DateTime]”。这将允许可为Null的类型:
car.AmentityValidDateFrom.GetValueOrDefault().Date