[英]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.