2

这不起作用:

select new Schedules
{
    airDate = EntityFunctions.TruncateTime(schedules.DateSched),
};

schedules.DateSched 是“SQL DateTime”类型。

上面的函数返回它的日期和时间部分。

如何仅将 schedules.DateSched 的 DATE 部分分配给我的“airDate”变量?

这是实体框架产生的:

convert (datetime2, convert(varchar(255), <field>, 102) ,  102) AS [C4] 

如果你选择它,你会得到:

2013-06-24 00:00:00.0000000

我想得到:

2013 年 6 月 24 日

4

4 回答 4

2

无论您从 SQL 中得到什么,都与您的问题无关:C# 只有一种DateTime类型。C# 中没有Date(唯一)类型可以转换。因此,这2013-06-24 00:00:00.00000是最接近没有时间的约会。

于 2013-06-24T17:54:44.037 回答
1

DateTime类型始终具有时间组件。所做的只是去掉EntityFunctions.TruncateTime任何时间值,有效地将时间部分更改为午夜。

如果您只想显示日期组件,则使用适当的格式代码仅显示日期:

string myDate = dateTime.ToString("MM/dd/yyyy");
于 2013-06-24T17:58:00.503 回答
1

您是否尝试过格式化日期?

   airDate = EntityFunctions.TruncateTime(schedules.DateSched).ToString("d", 
                      CultureInfo.CreateSpecificCulture("en-US"))),
于 2013-06-24T17:54:39.423 回答
0

不幸的是,没有一个答案对我有帮助,所以我所做的是,在实际的 gridView 中,我做了:

<asp:BoundField HeaderText="Air Date" DataField="AirDate" SortExpression="AirDate" DataFormatString="{0:d}"/>
于 2013-07-11T00:43:32.363 回答