Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何仅存储datetime的日期部分。SQL Server表datetime列的Today属性?_C#_Sql_Sql Server 2012_Linq To Sql - Fatal编程技术网

C# 如何仅存储datetime的日期部分。SQL Server表datetime列的Today属性?

C# 如何仅存储datetime的日期部分。SQL Server表datetime列的Today属性?,c#,sql,sql-server-2012,linq-to-sql,C#,Sql,Sql Server 2012,Linq To Sql,我正在尝试使用更新SQL Server 2012表中的datetime列 newItem.DateSaved = DateTime.Today; 我只想保存DateTime中的Date部分,但当我在表中进行检查时,我可以看到它还保存了时间部分:2018-07-27 00:00:00.000。 如何使其仅存储日期零件2018-07-27 编辑 因为我的列是datetime,所以我发现我不能只存储日期部分。但是我怎样才能只向用户显示日期部分而不显示时间呢?以下是Linq to SQL查询的sele

我正在尝试使用更新SQL Server 2012表中的
datetime

newItem.DateSaved = DateTime.Today;
我只想保存
DateTime
中的
Date
部分,但当我在表中进行检查时,我可以看到它还保存了时间部分:
2018-07-27 00:00:00.000
。 如何使其仅存储
日期
零件<代码>2018-07-27

编辑

因为我的列是
datetime
,所以我发现我不能只存储日期部分。但是我怎样才能只向用户显示日期部分而不显示时间呢?以下是Linq to SQL查询的select部分:

select new { Date = smv.DateSaved.Value.Date }).Distinct();

一个
datetime
列总是有一个时间部分——只是,在你的例子中,它都是零。A
datatime
只是一个隐藏的数字;对于它拥有/没有什么,它没有任何选择;类似地,在您的代码尝试显示它之前,它没有任何格式化的概念,然后是dispalying代码选择格式


如果不需要时间部分,请对列使用
date
而不是
datetime

将SQL Server中的列类型从
datetime
更改为
date
()

如果只想在SQL Server数据库中存储没有时间的日期,可以将列类型设置为
date

ALTER TABLE table_name
ALTER COLUMN DateSaved date; 
参考:

如果模型中有一个
DateTime
属性,并且只想显示日期部分,只需在视图中的控件中对其进行格式化即可。例如:

$"{newItem.DateSaved:yyyy-MM-dd}"

如果希望使用默认格式,还可以使用
“d”
“d”
(短版和长版),而不是使用特定格式,如
“yyyy-MM-dd”


如果您的视图是用HTML或XAML编写的,请使用相同的格式化技术在那里进行处理。

这是因为数据库上的字段是
DateTime
。如果只想存储日期,则应该有一个日期数据类型的字段。在这里,您可以看到日期数据类型之间的差异。

因为它是DateTime,所以它总是有一个time元素。如果不需要TimeDateTime.Today.Date.ToString(“d”),则仅向用户显示日期部分;将列类型设置为
Date
列的sql类型为datetime,因此它希望满足该条件,因此时间部分默认为全零。如果不需要时间部分,请将其更改为
日期
@puropoix请查看编辑的帖子
newItem.DateSaved.ToString("yyyy-MM-dd")