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