簡體   English   中英

ASP.NET和SQL Server日期時間問題

[英]asp.NET and SQL Server datetime issues

我很難將日期信息存儲到SQL Server的datetime列中。

我從用戶那里得到了三列的輸入:

  1. 創建日期
  2. 准備日期
  3. 下次准備日期

我使用calendarextender並將日期格式設置為“ yyyy / MM / dd”。 當所有字段都有日期時,它們將存儲在數據庫中,例如16-10-2016(dd-MM-yyyy)。

此時,我有兩個問題:

  1. 這些列是可選的,當其中一些為空時,我的代碼不起作用(我假設是因為datetime不能為null)。 為了克服這個問題,我使用了以下代碼片段,但仍然無法正常工作。

     DateTime? creationDate= null; if (creationDateTextbox.Text != null && creationDateTextbox.Text != "") { creationDate= Convert.ToDateTime(creationDateTextbox.Text); } 
  2. 當我從數據庫中獲取日期時,它們顯示為2016年10月16日(MM-dd-yyyy),與我格式化日期的方式不同。 我想以用戶輸入的格式顯示它。

日期存儲在數據庫中時沒有格式。 實際上,它通常只是一個很大的long ,它從設定的開始日期開始算起毫秒數。

如果要存儲格式,則需要停止將其存儲為日期,而只是將文本視為數據庫中的文本,但是,如果這樣做,則將無法獲得按日期范圍排序或過濾的優勢,因為它將只是被視為文字。

日期時間沒有任何格式您可以格式化為字符串,假設您的DateTime類型數據庫字段dt包含日期為10/16/2016 (MM-dd-yyyy)則可以將其轉換

string s = dt.ToString("yyyy/MM/dd");

您的問題之一的答案在這里: MSDN您可以使用數據批注來格式化從SQL DB獲得的日期。 我假設您使用的是EF6; 如果不是,則可以在SSMS中將該字段更改為varchar,然后將日期存儲為字符串。

第二點,我不清楚,但是如果您希望SQL DB列是可選的,則可以使用Optional數據注釋。

暫無
暫無

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

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