2017-05-18 75 views
0

我想問一下,如果沒有時間如何獲得日期。我試圖尋找,但我想要的方法不同。這裏是我的表mvc 4:保存日期只有沒有時間

CREATE TABLE myRequest (
    [request_id]  INT  IDENTITY(1, 1)  NOT NULL, 
    [date_requested] DATETIME DEFAULT(getdate()) NOT NULL 
) 

這裏是我的代碼

public void save() 
{ 
    myRequest req = new myRequest 
    { 
     request_id = db.myRequest.Count() + 1, 
     date_requested = DateTime.Now.Date 
    }; 

    db.myRequest.Add(req); 
    db.SaveChanges(); 
} 
+3

將您的SQL數據類型更改爲'DATE' –

+0

感謝您的幫助,它的工作原理。 – Mike

回答

0

變化date_requested在表中的列類型DATE

考慮這個表

CREATE TABLE TestTable(
    DateOnlyColumn DATE  DEFAULT (getdate()) NOT NULL, 
    DateTimeColumn DATETIME DEFAULT (getdate()) NOT NULL) 

如果你插入一行像這樣

INSERT INTO [dbo].[TestTable] VALUES (GETDATE(), GETDATE()) 

然後你會看到雖然兩者DateOnlyColumnDateTimeColumn具有相同值分別喂但是,DateOnlyColumn剛剛日期和DateTimeColumn具有日期和時間部分。因此,在C#代碼中傳遞DateTime.Now.Date不會產生任何影響,SQL會自動將零時間添加到DATETIME列。因此,如果您不希望將時間值存儲在數據庫中,只需使用DATE類型的列。

+0

謝謝你的幫助,它的工作原理。 – Mike

0

如果更改SQL表定義是不是一種選擇,你可以使用ToShortDateString C#方法:

DateTime d = DateTime.Now; 
Console.WriteLine(d.ToShortDateString()); 

這將DateTime對象轉換爲只含日期部分的字符串。如果您只想顯示沒有時間的日期,它可能適合您的目的。

相關問題