我在数据库中有一个出生日期字段,该日期是数据类型日期。我的aspx页面中有三个相同的下拉列表。一天下降,一个月下降,一个下一年。如果用户仅选择日期和月份或月份或年份或任何组合。如何将其插入数据库的日期字段中。
如果用户仅选择日期和月份或月份和年份或任何组合。如何将其插入数据库?
谢谢,
答案 0 :(得分:2)
两个选项:
DateTime
字段,在未提供时使用“虚拟”数据填充该字段,并有一个单独的字段来指示提供了哪些信息第一个听起来对我来说更明智 - 这并不是说你真的可以用“1976年某个月的第19个”做很多明智的日期相关查询,这意味着你的数据准确地代表什么用户指定。
答案 1 :(得分:0)
在选择所有字段之前,不允许用户提交答案。这是标准方式。你可以使用验证器。 或者试试这个(我不确定) 1.将日期字段保留为空。 和/或
2.If(txtDate.Text =“”)然后 cmd.Parameters(“@ Date”)。Value = sqldatenull
答案 2 :(得分:0)
如果只有年份是可选的,那么你可以简单地存储0001作为年份。
dt = new DateTime(Math.Max(1,dob_year), dob_month, dob_day);
如果日期和/或月份是可选的,则DateTime不是正确的数据类型,因为您无法存储空值,因此具有单独的日,月,年字段是唯一的选项。
答案 3 :(得分:0)
日期总是需要一天,一个月和一年,因为它指的是过去,现在或将来的实际日期。
所有日期必须在01/01/0001至31/12/9999范围内,因此无法存储0000年。
对于您的问题,有两种选择: