[英]asp.NET and SQL Server datetime issues
我很難將日期信息存儲到SQL Server的datetime列中。
我從用戶那里得到了三列的輸入:
我使用calendarextender並將日期格式設置為“ yyyy / MM / dd”。 當所有字段都有日期時,它們將存儲在數據庫中,例如16-10-2016(dd-MM-yyyy)。
此時,我有兩個問題:
這些列是可選的,當其中一些為空時,我的代碼不起作用(我假設是因為datetime不能為null)。 為了克服這個問題,我使用了以下代碼片段,但仍然無法正常工作。
DateTime? creationDate= null; if (creationDateTextbox.Text != null && creationDateTextbox.Text != "") { creationDate= Convert.ToDateTime(creationDateTextbox.Text); }
當我從數據庫中獲取日期時,它們顯示為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.