根据SQL Server的出生日期检查年龄
我试图检查从出生之日起用户的年龄,以确保年龄在16至80之间,当数据插入表中时,
出生日期是
我疲倦的日期数据类型,寻找多个解决方案,而无需他们在插入数据时检查它,
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我试图检查从出生之日起用户的年龄,以确保年龄在16至80之间,当数据插入表中时,
出生日期是
我疲倦的日期数据类型,寻找多个解决方案,而无需他们在插入数据时检查它,
。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
另一个答案无法正确处理部分年。
>作为
20060627
,基于日期>
的计算将返回true
。这是因为日期
仅计算两个日期之间通过的日期边界。另一个问题是它不能使用索引。
更正确的caluclation使用
dateadd
在当前日期:The other answer does not correctly deal with partial years.
For example, given
GETDATE()
as20220626
and aDateOfBirth
as20060627
, a calculation based onDATEDIFF
will returnTRUE
. This is becauseDATEDIFF
just counts the number of date boundaries that pass between the two dates.Another issue is that it cannot use indexes.
A more correct caluclation uses
DATEADD
against the current date:db<>fiddle
类似:
不是最终代码,但可以希望在您的方案中插入:)
Something like:
Not final code, but could be inserted in your scenario hopefully :)