簡體   English   中英

如何只存儲日期時間的日期部分。 今天屬性到SQL Server表的datetime列?

[英]How can I store only the date portion of the datetime. Today property to a SQL Server table datetime column?

我試圖通過使用更新SQL Server 2012表中的datetime

newItem.DateSaved = DateTime.Today;

我想只保存DateTimeDate部分,但是當我在表中檢查時,我可以看到它還節省了時間部分: 2018-07-27 00:00:00.000 我怎么能只存儲date部分? 2018-07-27

編輯

因為我的列是datetime ,所以我看到我不能僅存儲日期部分。 但是如何在沒有時間的情況下向用戶顯示日期部分呢? 以下是Linq-to-SQL查詢的選擇部分:

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

datetime時間列始終具有時間部分 - 在您的情況下,它將全部為零。 datatime只是引擎蓋下的數; 它沒有任何選擇它有/沒有; 同樣,它沒有格式的任何想法,直到你的代碼試圖顯示它,然后它是選擇的格式dispalying代碼。

如果您不想要時間部分,請使用date而不是datetime時間作為列。

在SQL Server中將列類型從datetime更改為datehttps://docs.microsoft.com/en-us/sql/t-sql/data-types/date-transact-sql?view=sql-server-2017

如果要在SQL Server數據庫中僅存儲沒有時間的日期,可以將列類型設置為date

ALTER TABLE table_name
ALTER COLUMN DateSaved date; 

參考: https//docs.microsoft.com/en-us/sql/t-sql/data-types/date-transact-sql?view=sql-server-2017

如果模型中有DateTime屬性,並且只想顯示日期部分,則只需在視圖中的控件中對其進行格式化。 例如:

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

要么

newItem.DateSaved.ToString("yyyy-MM-dd")

如果您想要默認格式,也可以使用"d""D" (短版和長版)而不是像"yyyy-MM-dd"這樣的特定格式。

如果您的視圖是用HTML或XAML編寫的,請使用相同的格式化技術。

這是因為數據庫中的字段是DateTime 如果您只想存儲日期,則應該有一個包含日期數據類型的字段。 在此鏈接中 ,您可以看到日期數據類型之間的差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM